我写了一个小测试来演示
@Test
public void missingPunctuationRegex() {
Pattern punct = Pattern.compile("[\\p{Punct}]");
Matcher m = punct.matcher("'");
assertTrue("ascii puctuation", m.find());
m = punct.matcher("‘");
assertTrue("unicode puctuation", m.find());
}
第一个断言通过,第二个断言失败。您可能需要眯着眼睛才能看到它,但这是“左单引号”( U+2018 ),据我所知,应该将其作为标点符号覆盖。
我将如何匹配 Java 正则表达式中的所有标点符号?
最佳答案
您可以使用 UNICODE_CHARACTER_CLASS
标志使 \p{Punct}
匹配所有 Unicode 标点符号。
关于java - 正则表达式\p{Punct} 错过了 java 中的 unicode 标点符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23000150/