这是我到目前为止的内容: /(^|[\s])#\d+/g
我的测试字符串是: "#123 it should match this: #1234, but not this: http://example.org/derp#6326 . How about on a new line?\n\n#1284"
当我尝试比赛时,我得到以下比赛:
"#123"
" #1234"
"\n#1284"
(假装那是一个实际的换行符)我试图通过将?:
分组添加到分组中并用括号括起来来更改正则表达式:/(?:^|[\s])(#\d+)/g
,但是,这不起作用,并且提供了相同的匹配项
我怎么能只匹配#
+号而不先匹配呢?
内存捕获可以解决问题:
var re = /(?:^|[\s])(#\d+)/g;
while (match = re.exec(str)) {
console.log(match[1]);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句