1

我目前的正则表达式模式:

(?s)]*>(.*?)\bsomething\b(.*?)

要搜索的 HTML 片段:

<p>somethin</p>
<p>nuthin</p>

如果我针对上面的 html 片段运行它,它将匹配<p>somethin</p>我所需要的。

但是,如果我将模式嵌入字符串从“somethin”更改为“nuthin”,当我只想要第二个标签集时,它将完全匹配两个 p 标签。如果我嵌套 p 标签而不是将它们放在一行上,则行为是相同的,这也是需要的。

谢谢。

4

3 回答 3

1

表达很奇怪,我不完全明白你想要什么。但是,如果您希望使用每个标签,请尝试下一个正则表达式:

(?s)<(.+?)>\b\w+\b</\1>

准确的问题,请。

于 2011-11-08T15:55:20.987 回答
0

这是我的建议:

(<([^>\s]*)[^>]*>[*<]*somethin[*<]*</\2>)

如果你的父元素中有嵌套的 HTML 标签,这将不起作用,否则你应该是黄金。

于 2011-11-08T16:42:09.307 回答
0

如果您只想选择具有确切字符串的标签,请使用<(\w+).*?>(somethin)<\/\1>

如果要选择包含子字符串的标记,请使用<(\w+).*?>.*?(somethin).*?<\/\1>

于 2017-02-13T21:28:04.060 回答