我们有大量静态的 HTML 有链接,例如
<a href="link.html#glossary">Link</a>
然而,其中一些在锚点中包含空格,例如
<a href="link.html#this is the glossary">Link</a>
关于我需要使用哪种正则表达式来查找 # 之后的空格并将它们替换为 - 或 _ 的任何想法
更新:只需要使用 TextMate 找到它们,因此不需要 HTML 解析库。
您是否考虑过使用像 BeautifulSoup 这样的 HTML 解析库?这将使查找所有href变得更加容易!
这个正则表达式应该这样做:
#[a-zA-Z]+\s+[a-zA-Z\s]+
三个注意事项。
首先,如果您担心页面文本本身(而不仅仅是链接)可能包含诸如“#hashtag more words”之类的信息,那么您可以使正则表达式更具限制性,如下所示:
#[a-zA-Z]+\s+[a-zA-Z\s]+\">
其次,如果您的哈希标签包含超出 AZ 的字符,则只需将它们添加到第二组括号之间。所以,如果你也有'-',你会修改为:
#[a-zA-Z]+\s+[a-zA-Z-\s]+\">
最后,这假设您尝试匹配的所有链接都以字母/单词开头,后跟一个空格,因此,在当前形式中,它不会匹配“Anchor-tags-galore”,但会匹配“Anchor标签丰富。”
在这里,这个正则表达式匹配散列和其间的所有单词和空格:
#(\w+\s)+\w+
http://dl.getdropbox.com/u/5912/Jing/2009-08-12_1651.png
当您有时间时,您应该下载“The Regex Coach”,这是一个开发您自己的正则表达式的绝佳工具。你会得到即时反馈,你学得很快。另外,它是免费的!