这是我到目前为止所拥有的:/(^|[\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]);
}
关于javascript - 正则表达式匹配 : Surrounded by space or start of line, 但不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23157477/