javascript - 正则表达式匹配 : Surrounded by space or start of line, 但不匹配

标签 javascript regex

这是我到目前为止所拥有的:/(^|[\s])#\d+/g

我的测试字符串是: "#123 它应该匹配这个:#1234,但不匹配这个:http://example.org/derp#6326 。换一个新行怎么样?\n\n# 1284"

当我尝试匹配时,我得到以下匹配项:

  • “#123”
  • “#1234”
  • "\n#1284"(假装这是一个实际的换行符)

我尝试通过将 ?: 添加到分组中来更改正则表达式,并用括号括住我想要的内容: /(?:^|[\s])(#\d+)/g,但是,这不起作用,并且提供了相同的匹配

如何只匹配 # + 数字,而不在其前面添加任何内容?

最佳答案

内存捕获就可以解决问题:

var re = /(?:^|[\s])(#\d+)/g;

while (match = re.exec(str)) {
    console.log(match[1]);
}

Demo

关于javascript - 正则表达式匹配 : Surrounded by space or start of line, 但不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23157477/

相关文章:

javascript - testcafe 选择器未找到 'div' 元素

javascript - 按背景颜色计算行数失败

php - 如何在此正则表达式中只获得一个匹配项?

Java 正则表达式,需要有关转义字符的帮助

javascript - 如何切换 Google map 中多个 JSON 叠加层的可见性

javascript - Puppeteer,保存网页和图片

javascript - moment.js 将时间更改为 gmt

Javascript在 Canvas 填充样式上绘制语音气泡仅更改文本颜色

regex - 在电子邮件地址后添加换行符

用于 Mark Nelson 实现 Ukkonen 算法的后缀树中首次出现模式 s 的 java 模式匹配