我试图编写正则表达式模式来解析具有相似标签的字符串(3个字符),并且这些标签在字符串中已经退役
ABC=TEXT 1 - HERE.. DEF=/TEXT 2: TEXT .. ZYX=TEXT 3 TEXT
当我使用
时#([A-Z]{3})=(.*)+#isU
我只获得标签ABC,DEF,......但没有获得内容。我怎样才能得到这两个?
我想获得带有标签和内容的结果
ABC
TEXT 1 - HERE..
DEF
/TEXT 2: TEXT ..
ZYX
TEXT 3 TEXT
上的示例
答案 0 :(得分:2)
答案 1 :(得分:1)
此([A-Z]{3})=(.*)+
正则表达式,特别是
这个子表达式
(.*)+
告诉引擎尽可能多次覆盖捕获组1
在最后一次写作中,.*
没有任何匹配,因为它无法匹配。
因此,捕获组是空的。
您可以使用它来获取捕获组2中的数据。
# (\b[A-Z]{3})=((?:(?!\b[A-Z]{3}=).)*)
( \b [A-Z]{3} ) # (1)
=
( # (2 start)
(?:
(?! \b [A-Z]{3} = )
.
)*
) # (2 end)