我可以在正则表达式中使用“Alternation”来匹配任何出现的“cat”或“dog”:
(cat|dog)
是否有可能NEGATE这个交替,并匹配任何不是“猫”或“狗”的东西?
如果是这样,怎么样?
例如:
假设我试图用英语大致匹配END OF SENTENCE.
以机智:
(\.)(\s+[A-Z][^.]|\s*?$)
使用以下段落:
敏捷的棕色狐狸跳过了懒狗.曾几何时,桑奇博士,帕森斯先生和州长梅森都去了商店.你好,世界.
我错误地在Dr.,Mr.和Gov.找到了“句末”.
(我正在使用http://regexpal.com/进行测试,以防你想看到我在上面的例子中看到的内容)
由于这是不正确的,我想说的是:
!(Dr\.|Mr\.|Gov\.)(\.)(\s+[A-Z][^.]|\s*?$)
当然,这不起作用,这就是我寻求帮助的原因.
我也试过了!/(Dr. | Mr. | Gov.)/,和~~这些都没有任何帮助.
如何避免“Dr.”,“Mr.”的匹配和“州长”等?
提前致谢.
最佳答案 这不可能.你通常会使用负面的lookbehind(?<!…)来做这件事,但是JavaScript的正则表达式并不支持这一点.相反,您必须在事后过滤匹配以丢弃您不想要的匹配.