我试图理解负面的前瞻是如何在简单的例子上起作用的.例如,考虑以下正则表达式:
a(?!b)c
Run Code Online (Sandbox Code Playgroud)
我认为负面前瞻符合一个位置.因此,在这种情况下,正则表达式匹配任何严格包含3个字符的字符串,而不是abc.
但这不是真的,正如在这个演示中可以看到的那样.为什么?
我可以用来\p{Punct}匹配所有标点符号(包括下划线)。
我想严格排除单词内的所有撇号。为此我正在使用(?<=[a-zA-Z])'(?=[a-zA-Z])
但是,我无法让它们一起工作来严格匹配单词内除撇号之外的所有标点符号。
我应该用什么?
例子:
my brother's这不应该匹配。
my brothers'这应该匹配。
my 'brother'这些应该匹配。