【问题标题】:Regex expression only matching the first occurrance正则表达式仅匹配第一次出现
【发布时间】:2018-06-28 13:10:51
【问题描述】:

我正在尝试使用此 RegEx 表达式匹配字符串上的所有 @mentions 和 #hashtags:

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

根据 regex101.com,由于 + 在那里,它应该匹配所有出现

“+”量词——匹配一次到无限次,尽可能多次,根据需要回馈

但是当我通过一个多次出现的字符串运行它时,它只匹配第一个。

发生了什么事?

感谢您的关注。

【问题讨论】:

  • 您需要使用全局标识符。 /(^|\s)([#@][a-z\d-]+)/g
  • @StéphaneAmmar javascript 标签在那里

标签: javascript jquery html regex hashtag


【解决方案1】:

在末尾添加g(全局)标志以进行多个匹配。

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

【讨论】:

  • 正确,我在较早的问题中看到过它,但我不明白该放在哪里。谢谢!
【解决方案2】:

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

使用/[@#]\w+/ 正则表达式。

【讨论】:

  • 完全错误。 (^|\s) 表示 空格 或 开始
  • 我只提到了 ^ 符号而不是 \s。
猜你喜欢
  • 2016-03-18
  • 2022-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-10
  • 1970-01-01
  • 2015-09-27
相关资源
最近更新 更多