【问题标题】:Write regex to replace html paragraph according to the attribute of a specific tag编写正则表达式根据特定标签的属性替换html段落
【发布时间】:2013-01-30 07:05:52
【问题描述】:

我有一个包含与 html 混合的常规文本的字符串我如何编写正则表达式,以便我可以用常规文本替换特定的 p(paragraph) 标记这是我要替换的示例:

    <p style="padding-left: 30px;">someText</p>

正则表达式应匹配此特定标记并将其替换为与 padding-left 属性 + innerText 匹配的空格。

顺便说一句。我正在用 C# 进行正则表达式解析

【问题讨论】:

  • 你用什么语言做正则表达式解析?
  • 该死 .. 我想出了一个很棒的 JavaScript 解决方案,但我不知道 C# 它似乎根本不兼容
  • 如果p 有其他属性怎么办?如果p 样式除了padding-left 之外还有其他样式规则怎么办?
  • 如果你愿意展示一下我可以吗? :-)
  • 只会有普通的 p 或 p 左填充

标签: html regex tags


【解决方案1】:

您应该改用 html/xml 解析器,但假设没有嵌套标签并且您的属性和样式总是以相同的顺序定义,您可以使用这个:

text.replace(/<p.*?style=.*?padding-left: (\d+).*?>(.*?)<\/p>/, function (x) {
    console.log((new Array(Number(arguments[1]))).join(' ') + arguments[2]);
});

【讨论】:

  • 但是 html xml 解析器也能处理常规文本吗?
  • @KennO 他们可以.. 绝对。这不像您正在对常规文本进行任何解析。
  • 我不确定你要我在答案中写什么
  • 哦,我只是觉得我绝对应该使用 xml/html 解析器,所以如果你想要答案的要点
  • 嗯,我确实在答案中说过 <_>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 2017-07-15
  • 2017-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多