是否有正则表达式可在两个标签之间查找文本?

时间:2019-09-06 16:16:20

标签: regex

我有一个包含一些xml的文本,我正在尝试匹配每个组。

<DOCUMENT>
<TYPE>Some text 
<SEQUENCE>1
<FILENAME>page.htm
<DESCRIPTION>some text
<TEXT>
<HTML>
<HEAD>
</DOCUMENT>

<DOCUMENT>
<TYPE>Some text 2
<SEQUENCE>1
<FILENAME>page2.htm
<DESCRIPTION>some text 2
<TEXT>
<HTML>
<HEAD>
</DOCUMENT>

我试图获取<DOCUMENT> ... </DOCUMENT>的每一组,但是我一直在获取整个文本,而不是每一组。 我已经尝试过(<DOCUMENT>)([^&]*)(<\DOCUMENT>)和其他一些方法,但是无法将其分组。

1 个答案:

答案 0 :(得分:1)

通常,/start(.*?)end/形式适用于起始和结束定界符之间的PCRE非贪婪匹配。如果您的文本包含换行符,则可能需要打开多行标志。 ?是票证-将匹配从贪婪(从起始令牌匹配到最后一个结束令牌)变为非贪婪(从起始令牌匹配到最终令牌的第一个实例)。 / p>

也就是说,如果这实际上是一个标记文档,请记住黄金法则:don't parse XML with regex