首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >负前瞻性RegEx

负前瞻性RegEx
EN

Stack Overflow用户
提问于 2016-11-08 17:44:11
回答 4查看 912关注 0票数 3

为什么这不管用?试图做一个消极的展望。除了检疫箱和检验箱外,我正试着从垃圾箱里取出号码。当我在前面加上^的代码时,是匹配括号中的所有数字的。当我移除^ it时,不匹配任何内容。

你还能在负前瞻中使用“或操作符”吗?我想要^(?!Quarantine_Bin|Inspection_Bin)

我还试图专门否定[^Quarantine_Bin],但它仍然是匹配的。

代码语言:javascript
复制
^(?!Quarantine_Bin)\([0-9]+\)

数据

代码语言:javascript
复制
    Quarantine(2),Other_Bin(2),Quarantine_Bin(2),Quarantine_Bin(2),
    Quarantine_Bin(5),Inspection_Bin(3),Regular_Bin(5),other(2)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-11-08 17:47:23

您应该使用负面的查找,如下所示:

代码语言:javascript
复制
(?<!\b(Quarantine|Inspection)_Bin)\([0-9]+\)

RegEx演示

(?<!\b(Quarantine|Inspection)_Bin)是一个负面的外观,如果在我们的匹配之前存在Quarantine_BinInspection_Bin,则会断言失败。\b代表单词边界。

票数 4
EN

Stack Overflow用户

发布于 2016-11-08 17:51:15

这是个负面的背景

代码语言:javascript
复制
use warnings;
use feature 'say';

my @strings = (
    "Quarantine_Bin(5),Inspection_Bin(3),Regular_Bin(5),other(2)",
    "Quarantine(2),Other_Bin(2),Quarantine_Bin(2),Quarantine_Bin(2),"
);

for (@strings) {
    my @m = $_ =~ /(?<!\b(?:Quarantine|Inspection)_Bin)\(\d+\)/g; 
    say "@m";
} 

^锚点不满足您的需要,请使用\b指定单词边界。

这包括带数字的括号、返回行(5) (2)(2) (2)

如果您希望省略它们,则在数字周围添加捕获参数

代码语言:javascript
复制
/(?<! \b(?: Quarantine|Inspection)_Bin ) \( (\d+) \)/xg;

或者将打开的paren拉到后面(这样它就不会被消耗),而忽略了关闭的那个。

代码语言:javascript
复制
/(?<! \b(?: Quarantine|Inspection)_Bin \( ) \d+/xg;

这些返回线5 22 2,没有父母。

/x修饰符允许空间内的可读性。

票数 5
EN

Stack Overflow用户

发布于 2016-11-08 19:17:49

^(?!Quarantine_Bin)\([0-9]+\)检查字符串的开头是否跟着Quarantine_Bin,而后面是否跟着\([0-9]\)。那不可能是真的。

[^Quarantine_Bin]匹配的单个字符不是BQaeinrtu_。不是你想要的。

如果没有过滤,你就会

代码语言:javascript
复制
\b\w+\([0-9]+\)

您希望确保\b后面没有Quarantine_BinInspection_Bin,因此可以使用

代码语言:javascript
复制
\b(?!Quarantine_Bin\b)(?!Inspection_Bin\b)\w+\([0-9]+\)

代码语言:javascript
复制
\b(?!(?:Quarantine|Inspection)_Bin\b)\w+\([0-9]+\)

展望中的\b防止Quarantine_Bin_X被过滤掉。

有用的:

(?:(?!STRING).)*STRING[^CHAR]*CHAR

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40493294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档