为什么这不起作用?试图做一个负面的前瞻。我正在尝试从垃圾箱中提取数字,但检疫箱和检验箱除外。当我使用前面的 ^ 执行代码时,匹配括号中的所有数字。当我删除 ^ 时,它什么都不匹配。
您也可以使用“或运算符|”在负前瞻内?我想要 ^(?!Quarantine_Bin|Inspection_Bin)
我还尝试专门否定 [^Quarantine_Bin]
并且它仍然匹配。
^(?!Quarantine_Bin)\([0-9]+\)
数据
Quarantine(2),Other_Bin(2),Quarantine_Bin(2),Quarantine_Bin(2),
Quarantine_Bin(5),Inspection_Bin(3),Regular_Bin(5),other(2)
最佳答案
您应该使用负向后视:
(?<!\b(Quarantine|Inspection)_Bin)\([0-9]+\)
RegEx Demo
(?<!\b(Quarantine|Inspection)_Bin)
是一个否定的lookbehind,如果在我们的匹配之前有 Quarantine_Bin
或 Inspection_Bin
则断言失败。\b
用于字边界。关于regex - 负前瞻正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40493294/