Javascript 仅与第一次发生匹配的正则表达式

Javascript 仅与第一次发生匹配的正则表达式,javascript,jquery,html,regex,hashtag,Javascript,Jquery,Html,Regex,Hashtag,我正在尝试使用以下正则表达式匹配字符串上的所有@提及和#hashtag: (^|\s)([#@][a-z\d-]+) 根据regex101.com,由于+存在,它应该匹配所有事件 “+”量词-在一次和无限次之间匹配,尽可能多地匹配,根据需要返回 但是当我在一个有多个发生的字符串中运行它时,它只匹配第一个 发生什么事了 感谢您的关注。在多个匹配项的末尾添加g(全局)标志 /(^|\s)([#@][a-z\d-]+)/g 在多个匹配的末尾添加g(全局)标志 /(^|\s)([#@][a-z\d-

我正在尝试使用以下正则表达式匹配字符串上的所有@提及和#hashtag:

(^|\s)([#@][a-z\d-]+)
根据regex101.com,由于+存在,它应该匹配所有事件

“+”量词-在一次和无限次之间匹配,尽可能多地匹配,根据需要返回

但是当我在一个有多个发生的字符串中运行它时,它只匹配第一个

发生什么事了

感谢您的关注。

在多个匹配项的末尾添加
g
(全局)标志

/(^|\s)([#@][a-z\d-]+)/g
在多个匹配的末尾添加
g
(全局)标志

/(^|\s)([#@][a-z\d-]+)/g

^
此符号定义字符串的开头。这就是为什么它只与第一个字符串匹配


使用
/[@#]\w+/
regex.

^
此符号定义字符串的开头。这就是为什么它只与第一个字符串匹配


使用
/[@#]\w+/
regex.

您将需要使用全局标识符
/(^|\s)([#@][a-z\d-]+)/g
@StéphaneAmmar javascript标记在那里,您需要使用全局标识符
/(^|\s)([#@][a-z\d-]+)/g
@StéphaneAmmar javascript标记完全错误
(^ |\s)
表示空格或开头我只提到了^symbol not\s。完全错误
(^ |\s)
表示空格或开头我只提到了^symbol not\s。正确,我在旧版中看到过它,但我不知道该放在哪里。谢谢没错,我在旧版中看到过它,但我不知道该放在哪里。谢谢