为什么这不起作用?试图做一个负面的前瞻。我正在尝试从垃圾箱中提取数字,但检疫箱和检验箱除外。当我使用前面的 ^ 执行代码时,匹配括号中的所有数字。当我删除 ^ 时,它什么都不匹配。

您也可以使用“或运算符|”在负前瞻内?我想要 ^(?!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_BinInspection_Bin 则断言失败。\b 用于字边界。

关于regex - 负前瞻正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40493294/

10-11 17:20