Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式在两个字符串之间提取字符串,其中包含第三个字符串_Regex - Fatal编程技术网

Regex 正则表达式在两个字符串之间提取字符串,其中包含第三个字符串

Regex 正则表达式在两个字符串之间提取字符串,其中包含第三个字符串,regex,Regex,我有这个正则表达式 (?<=TG00).*?(?=#) (?您可以将此正则表达式与先行和否定字符类一起使用: (?<=TG00)(?=[^#]*TG40 155963)[^#]+(?=#) (?尝试以下模式: TG00[^#]*TG40 155963[^#]*# 这个模式只是说在TG00和结尾#之间找到字符串TG40 155963。对于演示中的示例数据,有3个匹配项 出于某种原因,将*?附加到lookback会导致引擎错误,但使用lookahead可以正常工作。下面的正则表达式

我有这个正则表达式

(?<=TG00).*?(?=#)

(?您可以将此正则表达式与先行和否定字符类一起使用:

(?<=TG00)(?=[^#]*TG40 155963)[^#]+(?=#)
(?尝试以下模式:

TG00[^#]*TG40 155963[^#]*#
这个模式只是说在
TG00
和结尾
#
之间找到字符串
TG40 155963
。对于演示中的示例数据,有3个匹配项


出于某种原因,将
*?
附加到lookback会导致引擎错误,但使用lookahead可以正常工作。下面的正则表达式与您的文本不完全匹配,但它会通过捕获组提取文本

(?<=TG00).*?(TG40 155963)(?=.*?#)

(?对编程语言有偏好吗?您似乎已经放弃了
(?=#)
最后的要求。我想如果匹配后没有实际的
#
就不应该匹配了。谢谢@tripleee,现在添加了它。非常感谢所有人的回答,一切都很好!在我的特殊需要下,这似乎工作更顺利。Ty!