【发布时间】:2014-06-27 14:23:45
【问题描述】:
我需要正则表达式方面的帮助。我的任务与 twitter 的标签非常相似:我有一个字符串,其中包含以# 开头的单词。例如:
foo #bar hello
在将主题标签保存到数据库之前,我将其替换为链接并获取如下字符串:
foo <a href="bar">#bar</a>
在那之后,有时我需要重新解析字符串,我不想在<a> 标记内替换#bar 两次。我需要正则表达式,它应该找到一个以# 开头的单词,而不是放在>、<、> 和</a> 内。
【问题讨论】:
-
这是
foo <a href="bar">#bar</a>您的预期输出吗? -
#bar是否只有一层深?因为我认为我有一个解决方案,只要这些不嵌套在任何其他标签中。 -
当然还有一个经典的问题,你考虑过xml解析器吗?
-
要操作 HTML,您应该看看 Nokogiri gem:nokogiri.org
-
不得不重新解析字符串让我觉得你没有很好地解决你的逻辑。在修改之前弄清楚字符串的所有更改,这样你只做一次,否则你会把自己画到角落里。