regex - 如何匹配单词中除一个以外的所有拼写?

标签 regex notepad++

假设我想匹配单词 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++ 中,这些都不适用于上面的文本:

enter image description here

最佳答案

您没有选中区分大小写选项,这使得您的正则表达式以不区分大小写的方式进行匹配。

检查区分大小写选项并使用

\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/

相关文章:

Javascript 正则表达式子组

javascript - 如何让 RegEx 获取整个 URL...从 http 开始并获取之后的所有内容,直到空格以及如何排除某些字符

text - 如何使用 Notepad++ 删除文本文件中的所有IP

regex - 替换前 20 次出现

JavaScript 或 Notepad++ 正则表达式向任意文本添加千位分隔符

c++ - vector 中每个元素的模式匹配

regex - nginx-将特定路径重定向到另一个域

正则表达式匹配 #Comment 无法正常工作

notepad++ 中的 Haskell 控制台 IO

html - 排除电子邮件表达式的正则表达式