regex 在多个相似的惰性结尾组之间查找上下文

xlpyo6sf  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(77)

在多行中查找多个相似的惰性量词之间的上下文的最有效表达式是什么?
我使用HTML作为测试主题,所以它更容易理解,而不是真正的格式(符号和字符字节),否则将使用XPath/DOM!
样本数据:

<div>
     Testing 1234 
     <div>Testing1234</div> and testing 
     <div>Testing1234</div> testing 1234
</div>

字符串
预期结果:

Testing 1234 
         <div>Testing1234</div> and testing 
         <div>Testing1234</div> testing 1234


PCRE表达式

Base: /(<div>)(.*?)(<\/div>)/
Non capturing group: /(<div>)((?:<div>.*?<\/div>).*?)(<\/div>)/

kyvafyod

kyvafyod1#

这需要recursive正则表达式来匹配嵌套的。(@bobble bubble提供答案)

  • 以下内容将与第一组匹配:*
(?s)<div>((?:(?:(?!<\/?div).)+|(?R))*+)<\/div>

字符串

  • 通过使用“negated**<**"更有效:*
(?:(?!<\/?div).)+ part: <div>((?:[^<]+|<(?!\/?div\b)|(?R))*+)<\/div>

相关问题