我在Java中只匹配日语字符时遇到了一个奇怪的问题。让我通过代码来解释。
private static final Pattern ADDRESS_STRING_PATTERN =
Pattern.compile("^[\\p{L}\\d\\s\\p{Punct}]{1,200}$");
private static boolean isValidInput(final String input, Pattern pattern) {
return pattern.matcher(input).matches();
}
System.out.println("こんにちは、元気ですか");
在这里我匹配任何字母,空格,数字或标点符号的字母1到200个。
现在它总是返回false。通过一些调试,发现问题出在一个字符“、”上。如果将该字符作为正则表达式的一部分添加,则可以正常工作。
是否有人遇到过这个问题?或者这是Java中的错误吗?