我正在尝试匹配既匹配又不匹配模式/\*\d*\*/g
的字符组。例如,如果我的字符串是:
"*96* is *5* and not *547*."
我希望我的匹配项为"*96*"
," is "
,"*5*"
," and not "
,"*547*"
和"."
。
我看到的所有答案都涉及负面的前瞻性,但我只是无法使它们正常工作。
答案 0 :(得分:1)
除了匹配之外,您还可以在捕获组内使用模式来保留定界符(\*\d*\*)
并使用split:
let str = "*96* is *5* and not *547*.";
console.log(str.split(/(\*\d*\*)/g).filter(Boolean))
答案 1 :(得分:0)
我知道您要求一个正则表达式的直接答案,但是如何将split与正则表达式分隔符一起使用呢?然后它将把字符串拆分成数组的位置。
var test = "*96* is *5* and not *547*.";
var splits = test.split(/\*\d*\*/g);
console.log(splits);