【问题标题】:Match line breaks with a regular expression用正则表达式匹配换行符
【发布时间】:2011-03-04 23:19:16
【问题描述】:

正文:

<li><a href="#">Animal and Plant Health Inspection Service Permits
    Provides information on the various permits that the Animal and Plant Health Inspection Service issues as well as online access for acquiring those permits.

我想使用正则表达式在Permits 的末尾插入&lt;/a&gt;。碰巧的是,我所有类似的 HTML/文本块中都已经有了换行符。我相信我需要找到一个换行符\n,其中该行包含(或开头)&lt;li&gt;&lt;a href="#"&gt;

【问题讨论】:

  • 我有大量带有文本的 Photoshop 模板,我必须将它们转换为 html。单击 - 将 html 放入文本时,控件 V 变旧。我正在使用 Dreamweaver,它在搜索中内置了正则表达式功能。

标签: regex


【解决方案1】:

你可以搜索:

<li><a href="#">[^\n]+

并替换为:

$0</a>

$0 是整场比赛。确切的语义将取决于您使用的语言。


警告:您应该避免使用正则表达式解析 HTML。 Here's why.

【讨论】:

  • 如果换行符是\r 而不是\n 怎么办?即换行符是否有任何全局或通用符号?
  • 如果它是 \n 或 \r\n 而你不知道它会是哪一个呢?
  • @ABCD.ca [^\r\n]+ 处理这个问题。这是一个否定字符类,匹配任何不是\r\n 的字符(即:[^\r\n]+ 完全等同于[^\n\r]+
【解决方案2】:

默认情况下.(任何字符)不匹配换行符。

这意味着您可以简单地匹配零个或多个任意字符,然后附加结束标记。

查找&lt;li&gt;&lt;a href="#"&gt;.* 替换: $0&lt;/a&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 2011-10-23
    • 2010-11-22
    • 1970-01-01
    相关资源
    最近更新 更多