Hashtags的正则表达式

时间:2014-09-02 07:50:57

标签: ruby regex

/(?:\s|^)(?:#(?!(?:\d+|\w+?_|_\w+?)(?:\s|$)))(\w+)(?=\s|$)/i

这是我使用的当前表达式。它工作正常,但不允许使用短划线-。我需要这个:#what-ever被捕获。

如何将dash添加到此表达式?

1 个答案:

答案 0 :(得分:1)

只需将第一个捕获组中存在的模式\w-添加到字符类中即可。这样它就可以捕获一个单词字符或-符号。字符类使前一个标记重复一次或多次之后+

(?:\s|^)(?:#(?!(?:\d+|\w+?_|_\w+?)(?:\s|$)))([-\w]+)(?=\s|$)
                                             |here|

DEMO