/(?:\s|^)(?:#(?!(?:\d+|\w+?_|_\w+?)(?:\s|$)))(\w+)(?=\s|$)/i
这是我使用的当前表达式。它工作正常,但不允许使用短划线-
。我需要这个:#what-ever
被捕获。
如何将dash
添加到此表达式?
答案 0 :(得分:1)
只需将第一个捕获组中存在的模式\w
加-
添加到字符类中即可。这样它就可以捕获一个单词字符或-
符号。字符类使前一个标记重复一次或多次之后+
。
(?:\s|^)(?:#(?!(?:\d+|\w+?_|_\w+?)(?:\s|$)))([-\w]+)(?=\s|$)
|here|