【发布时间】:2012-01-25 06:43:15
【问题描述】:
我想做THIS,稍微复杂一点:
可以说,我有一个 HTML 输入:
<a href="http://www.example.com" title="Bla @test blubb">Don't break!</a>
Some Twitter Users: @codinghorror, @spolsky, @jarrod_dixon and @blam4c.
You can't reach me at blam4c@example.com.
是否有一个很好的正则表达式来替换通过指向 twitter 的链接提及的 twitter 用户名,但保留 @example(底部的电子邮件地址)和 @test(在链接标题中,即在 HTML 标记中)?
它可能还应该尝试不在现有链接中添加链接,即不要破坏这个:
<a href="http://www.example.com">Hello @someone there!</a>
我目前的尝试是在字符串的开头添加“>”,然后使用这个 RegEx:
Search: '/>([^<]*\s)\@([a-z0-9_]+)([\s,.!?])/i'
Replace: '>\1<a href="http://twitter.com/\2">@\2</a>\3'
然后删除我在步骤 1 中添加的“>”。
但是除了“@blam4c”之外,它不会匹配任何东西。我知道为什么会这样,这不是问题。
我想找到一种解决方案,可以在不破坏 HTML 的情况下查找并替换所有 twitter 用户名提及。也许不使用 RegEx 编码会更好?
【问题讨论】: