REGEX - 链接与主题标签冲突

REGEX - links vs hashtags conflict

我正在使用一些正则表达式从我从 API(推特、facebook、..)获得的文本中转换 links、主题标签、提及等

效果很好,但在 link 中有锚点 # 的特殊情况下,第一个模式先转换 link 然后再转换link 标签内的 hastag - 例如转换:

http://www.mytaratata.com/emission/taratata-n89/video/557/edwyn-collins-a-girl-like-you-1995#newsletter

一团糟。

我只是希望 Twitter 主题标签的正则表达式不匹配 link -(例如,如果它包含一个点)

hello#music -> match
#hello#music -> match
hello.com#music -> no match

我正在使用负前瞻来解决类似的问题,但我无法理解:

((?!\.)#.*\w*[a-zA-Z_]+\w*)

我想你想要这样的东西,

^(?!.*?\.).*?(#.*\w*[a-zA-Z_]+\w*)

从组索引 1 获取主题标签。

DEMO

^.*?\..*$|(#\w*[a-zA-Z_]+\w*)

DEMO

我建议在此处使用此正则表达式使事情简单化:

^[^.\n]+#([^#.\n]+)

RegEx Demo