【问题标题】:Regex (PSPad) to match tags and extract their contents, even when it contains tags正则表达式(PSPad)匹配标签并提取其内容,即使它包含标签
【发布时间】:2015-09-25 09:58:31
【问题描述】:

在 PSPad 中,我使用正则表达式来匹配 HTML 标签的内容。问题是这些标签可以包含其他标签(但不能包含它们自己)。

包装标签可以是任何标题(h1-6)或段落(p)。我已经设法创建工作正则表达式来匹配没有其他标签的内容。

<(h[1-9]|p)([^>]*)>([^<]*)</(h[1-9]|p)>

但这不匹配,例如

<p><a href="#someLink">aaa</a> something else...</p>

我知道我需要以某种方式否定整个小组到目前为止我已经尝试了这两个(没有成功):

<(h[1-9]|p)([^>]*)>(^(</(h[1-9]|p)))*</(h[1-9]|p)>
<(h[1-9]|p)([^>]*)>(!(</(h[1-9]|p)))*</(h[1-9]|p)>

那么如何正确否定整个组/“单词”?
我知道我需要从内部匹配中排除 &lt;/h1&lt;/h6&lt;/p,但我就是想不通。

非常感谢任何帮助/解决方案/方向/指导 - 谢谢! :-)

PS:PSPad 不做多行正则表达式(没关系,但需要考虑)

【问题讨论】:

    标签: html regex tags nested pspad


    【解决方案1】:

    我找到了解决方案 - 它非常简单且“愚蠢”,因为我知道包装标签不会包含(嵌套)它们自己......所以这个匹配开始和结束标签之间任何内容的正则表达式就足够了:

    <(h[1-9]|p)([^>]*)>(.*)</(h[1-9]|p)>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多