用于在字符串中查找 Instagram 风格主题标签的正则表达式 - Ruby

Regex for finding Instagram-style hashtag in string - Ruby

我正在努力在 Ruby 中构建一个正则表达式,以便能够在某些 HTML.

中包装来自字符串的主题标签

这是我目前的情况:

description.gsub!(/#\w+/, '[#]')

这应该是一个正则表达式,用于提取包含字母、数字和下划线的主题标签 - 并拆分为除这些之外的任何内容,例如 space 或 HTML 标签。

这里应该输入:

hello there #obiwan

并输出:

hello there [#obiwan]

但目前它输出:

hello there [#]

关于原因有什么想法吗?

如果你想引用一个捕获组,你可以使用\1但是在当前模式中没有组。

您可以在模式中添加捕获组:

description.gsub(/#(\w+)/, '#[\1]')

或者在替换中使用完全匹配:

description.gsub(/#\w+/, '[\0]')