1

我们有大量静态的 HTML 有链接,例如

<a href="link.html#glossary">Link</a>

然而,其中一些在锚点中包含空格,例如

 <a href="link.html#this is the glossary">Link</a>

关于我需要使用哪种正则表达式来查找 # 之后的空格并将它们替换为 - 或 _ 的任何想法

更新:只需要使用 TextMate 找到它们,因此不需要 HTML 解析库。

4

3 回答 3

2

您是否考虑过使用像 BeautifulSoup 这样的 HTML 解析库?这将使查找所有href变得更加容易!

于 2009-08-12T14:35:19.943 回答
2

这个正则表达式应该这样做:

#[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标签丰富。”

于 2009-08-12T14:43:10.973 回答
1

在这里,这个正则表达式匹配散列和其间的所有单词和空格:

#(\w+\s)+\w+

http://dl.getdropbox.com/u/5912/Jing/2009-08-12_1651.png

当您有时间时,您应该下载“The Regex Coach”,这是一个开发您自己的正则表达式的绝佳工具。你会得到即时反馈,你学得很快。另外,它是免费的!

访问主页

于 2009-08-12T14:52:36.357 回答