使用正则表达式匹配换行符

39

这段文字:

<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的结尾插入</a>。恰好,我所有类似的HTML /文本块中已经包含了换行符。我认为我需要找到一个包含(或以<li><a href="#">开头的)行并且有一个换行符\n

我有很多给我的带有文本的Photoshop模板,我必须将它们转换为HTML。当将HTML放入文本中时,点击-控制V已经变得老套了。我正在使用Dreamweaver,它具有内置搜索的正则表达式功能。 - The Muffin Man
2个回答

40

你可以搜索以下内容:

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

并替换为:

$0</a>

其中$0表示整个匹配。具体语义取决于您使用的编程语言。


警告:请避免使用正则表达式解析HTML。这里是原因。


1
如果换行符是\r而不是\n,那该怎么办呢?也就是说,是否有任何全局或通用的符号来表示换行? - SaidbakR
1
如果既可能是 \n 也可能是 \r\n,而你不知道它会是哪一个呢? - ABCD.ca
9
@ABCD.ca [^\r\n]+ 处理这个。这是一个否定字符类,匹配任何不是 \r\n 的字符(即:[^\r\n]+[^\n\r]+ 是完全等价的)。 - NullUserException

2
默认情况下,.(任何字符)不匹配换行符。
这意味着您可以简单地匹配零个或多个任何字符,然后附加结束标记。 查找:<li><a href="#">.* 替换:$0</a>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接