【问题标题】:Regex to delete <a name=">...</a> and leave inside text? [duplicate]正则表达式删除 <a name=">...</a> 并保留在文本中? [重复]
【发布时间】:2014-05-23 08:07:25
【问题描述】:

我们的 HTML 代码如下所示:

<h1><a name="_Toc22332223">Creating a record</a><h1>
<h1><a name="sectionB">Creating a record</a><h1>

有没有可以使用的表达式,我们可以找到并删除&lt;a name=&gt; 并留下这样的文字:&lt;h1&gt;Creating a record&lt;h1&gt;

我们也不会删除其他超链接,例如&lt;a href&gt;

我试过&lt;a name="[0-9]*"&gt;.+&lt;/a&gt; 无济于事。

谢谢!

【问题讨论】:

  • 通过学习使用 DOM,您可能会为自己省去很多麻烦(有些东西有 2 个空格,有 href 和名称,没有结束 &lt;/a&gt;...等)解析器。
  • 为什么不使用DOMDocument
  • 每当我在同一个句子中看到正则表达式和 html 时,我都会想到 this post 就笑了(无意冒犯)
  • 您期待什么结果?原始字符串是否被替换?还是什么?

标签: html regex


【解决方案1】:

正如其他人所建议的那样,DOM 解析是最可靠的方法。

但如果它必须非常简单,您可以使用以下正则表达式

<[aA]\s+name\s*=[^>]*>(.*)[^<]<\/a>

http://rubular.com/r/cI2CTwUCy3 上的示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-13
    • 2014-04-23
    • 1970-01-01
    • 2018-05-26
    • 2013-06-15
    • 2017-09-19
    • 1970-01-01
    • 2011-03-05
    相关资源
    最近更新 更多