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!