[英]Regex extract string between 2 strings, that contains 3rd string
我有这个正则表达式
(?<=TG00).*?(?=#)
提取TG00
和#
之间的所有字符串。 演示: https : //regex101.com/r/04oqua/1
现在,从以上结果中,我只想提取包含TG40 155963
的字符串。 我该怎么做?
您可以将此正则表达式与前瞻性和否定字符类一起使用:
(?<=TG00)(?=[^#]*TG40 155963)[^#]+(?=#)
RegEx说明:
(?<=TG00)
:断言我们在先前位置有TG00
(?=[^#]*TG40 155963)
:先断言我们在0个或多个非#字符之后有字符串TG40 155963
[^#]+
:匹配1+个非#字符 由于某种原因附加.*?
往后看会导致引擎错误,但与前瞻效果很好。 正则表达式如下不完全匹配您的文字,但它通过捕获组提取出来。
(?<=TG00).*?(TG40 155963)(?=.*?#)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.