如果我有以下数据:
abc1dogs
a1cat2dogs
turtles
我希望在“1”和“2”之后提取所有文本,或者如果该行不包含“1”或“2”?需要使用的附加规则是,如果记录中存在“1”和“2”,那么我只想要提取“2”之后的值。我尝试使用:
(?<=[12])(.*)
接近但它又回来了:
dogs
cat2dogs
我希望它返回的是:
dogs
dogs
turtles
答案 0 :(得分:2)
这个略显臃肿的PCRE正则表达式引擎:
(?<=2).*|(?<=1)[^2]*$|^[^12]*$
确保(如果找到1
)字符串的其余部分不包含2
s。同样,如果要匹配整个字符串,则字符串中不允许1
和2
。
答案 1 :(得分:0)
简单
[^12\n]*$
像这样测试: