我希望匹配一个结束标记,后跟一个0+空格/换行符,后跟一个开头标记,后跟一个小写字母。例子:
text</p> <p>blah
匹配</p> <p>
text</i><i>and more text <b>but not this</b>
匹配</i><i>
text</i> <i>And more text
不匹配我尝试了这个:</.*?>\s*\n*\s*<.*>(?=[a-z])
,但它不适用于第二个示例,因为它会匹配</i><i> and more text </b>
,即使问号应该使其“懒惰”。
答案 0 :(得分:0)
使量化器延迟仅使正则表达式尝试最短的匹配首先,但如果这不起作用,它将很乐意扩展匹配,直到整个正则表达式成功。
您需要更具体地说明您允许匹配的内容 - 例如,不允许在标记内使用尖括号:
</[^<>]*>\s*<[^/][^<>]*>(?=[a-z])
(此外,\s
已包含\n
,因此\s*\n*\s*
可缩短为\s*
)
答案 1 :(得分:0)
尝试:
</[^>]+>\s*<[^/>]+>(?=[a-z])
如果您希望能够匹配空标记
,请将“+”更改为“*”