用于查找与 html 标记最接近的模式匹配的正则表达式



我正在检查以下问题的解决方案。我有一个文本序列如下,我想提取更接近<em>标签的方括号的内容。

[P1/1]0(4)0(5)**[P1/432]** g(5)I(2)d(7)a(8)`<em>`b(5)[P1/4]C(6)e(7)B(8)B`</em>`(9)[P1/5]0(6)i(7)[P1/6]0(1)I(2)[P1/7]0(6)[P1/1]0(1)0(2)[P1/2]E(1)c(2)d(3)a(4)**[P1/3]** 0(1)`<em>`b(2)[P1/4]C(1)e(2)B(3)B`</em>`(4)[P1/5]0(1)

所以在上面提到的文本中,我搜索的是[P1/432]和[P1/3]。

使用正则表达式((.(?![.*?]))+?)<em>,我不能只得到括号的内容,而是从[到<em>的所有内容。

有人可以帮助我吗?

如果我们不关心嵌套的、不平衡的括号,有一个简单的解决方案:

[[^][]*](?=[^][]*<em>)

现场演示

最新更新