假设我想匹配单词 abc
的所有拼写,除了一个 - abc
。所以在一段文字中:
abc word abC 3226 aBc aBC Abc AbC ABc ABC
它将匹配所有这些 abc,除了第一个 - abc
并且不匹配文本中的其他字符。想不出如何写这个。
我尝试了(?i)(abc)(?!abc)
、(?i)(abc)^(?!abc)
、^ (?!abc)(?i)(abc)
、^(?!abc)(?i:abc)
、\b(?!abc)(?i :abc)\b
在 Notepad++ 中,这些都不适用于上面的文本:
最佳答案
您没有选中区分大小写选项,这使得您的正则表达式以不区分大小写的方式进行匹配。
检查区分大小写选项并使用
\b(?!abc)(?i:abc)\b
或者,
\b(?!abc)(?i)abc\b
或者,不要理会 NPP 设置并使用第二个内联修饰符或修饰符组来覆盖不区分大小写的选项:
\b(?!(?-i)abc)(?i)abc\b
\b(?!(?-i:abc))(?i:abc)\b
请参阅regex demo
因此,(?i)
打开不区分大小写((?i:...)
为一组执行此操作),而 (?- i)
关闭不区分大小写((?-i:...)
为一组执行此操作)。
关于regex - 如何匹配单词中除一个以外的所有拼写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63037948/