问题描述
您可以在此处组合三个条件。
-
匹配除撇号外的所有标点符号
'
使用[\p{Punct}&&[^']]
-
匹配所有撇号,后面没有字母。
-
匹配所有不带字母的撇号。
[\p{Punct}&&[^']]|(?<![a-zA-Z])'|'(?![a-zA-Z])
-
[\\p{Punct}&&[^']]
在标点符号类别中排除撇号。 -
(?<![a-zA-Z])'
匹配不带字母的撇号。 -
'(?![a-zA-Z])
匹配撇号,后面没有字母。
解决方法
我可以\p{Punct}
用来匹配所有标点符号(包括下划线)。
我想严格 排除 一个单词内的所有撇号。为此,我正在使用(?<=[a-zA-Z])'(?=[a-zA-Z])
但是,我不能让它们一起工作以匹配所有标点符号,但严格来说单词内的撇号除外。
我应该使用什么?
例子:
my brother's
这应该不匹配。
my brothers'
这应该匹配。
my 'brother'
这些应该匹配。