2014-09-02 23 views
0
/(?:\s|^)(?:#(?!(?:\d+|\w+?_|_\w+?)(?:\s|$)))(\w+)(?=\s|$)/i 

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

如何将dash添加到这个表达式中?

+0

似乎有点复杂,你只是在寻找,在一个文本哈希标签? – Nicolas 2014-09-02 07:55:30

+0

Yeap!标签提取。 – 2014-09-02 07:57:17

回答

1

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

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

DEMO

+0

我的勇敢的武士,再次感谢你:) – 2014-09-02 07:56:18

+0

你总是欢迎:-) – 2014-09-02 07:57:21

相关问题