0

如果我有以下数据:

abc1dogs
a1cat2dogs
turtles

我想提取“1”和“2”之后的所有文本,或者如果该行不包含“1”或“2”?需要使用的附加规则是,如果记录中存在“1”和“2”,那么我只希望提取“2”之后的值。我尝试使用:

(?<=[12])(.*)

这很接近但它回来了:

dogs
cat2dogs

我希望它返回的是:

dogs
dogs
turtles
4

2 回答 2

2

这个略显臃肿的引擎适用于 PCRE 正则表达式引擎:

(?<=2).*|(?<=1)[^2]*$|^[^12]*$

它确保(如果找到 a 1)字符串的其余部分不包含2s。同样,如果要匹配整个字符串,则字符串中不允许有1s 和2s。

于 2012-10-18T16:53:53.173 回答
0

简单的

[^12\n]*$

像这样测试:

在此处输入图像描述

于 2012-10-18T18:10:23.533 回答