我可以使用 \p{Punct}
匹配所有标点符号(包括下划线)。
我想在一个词中排除所有撇号。为此,我使用 (?<=[a-zA-Z])'(?=[a-zA-Z])
但是我不能让它们一起工作来匹配单词中除了撇号之外的所有标点符号。
我应该使用什么?
例子:
my brother's
这不应该匹配。
my brothers'
这应该匹配。
my 'brother'
这些应该匹配。
最佳答案
您可以在这里组合三个条件。
匹配除撇号以外的所有标点符号
'
使用[\p{Punct}&&[^']]
匹配所有后面没有字母的撇号。
匹配所有前面没有字母的撇号。
正则表达式: [\p{Punct}&&[^']]|(?<![a-zA-Z])'|'(?![a-zA-Z])
解释:
[\\p{Punct}&&[^']]
从标点符号类中排除撇号。(?<![a-zA-Z])'
匹配前面没有字母的撇号。'(?![a-zA-Z])
匹配后面没有字母的撇号。
关于java - 正则表达式如何匹配所有标点符号但排除某些条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36416280/