Javascript Regex-如何匹配所有与模式匹配和不匹配的字符组?
我正在尝试匹配匹配和不匹配模式的字符组Javascript Regex-如何匹配所有与模式匹配和不匹配的字符组?,javascript,regex,Javascript,Regex,我正在尝试匹配匹配和不匹配模式的字符组/\*\d**/g。例如,如果我的字符串是: “*96*是*5*而不是*547*” 我希望我的匹配项是“*96*”,“是”,“*5*”,”而不是“,“*547*”和” 我看到的所有答案都涉及到负面外观,但我无法让它们正常工作。您可以在捕获组中使用您的模式来保留分隔符(\*\d*\*),而不是匹配: let str=“*96*是*5*而不是*547*”; console.log(str.split(/(\*\d*\*))/g.filter(Boolean))
/\*\d**/g
。例如,如果我的字符串是:
“*96*是*5*而不是*547*”
我希望我的匹配项是“*96*”
,“是”
,“*5*”
,”而不是“
,“*547*”
和”
我看到的所有答案都涉及到负面外观,但我无法让它们正常工作。您可以在捕获组中使用您的模式来保留分隔符(\*\d*\*)
,而不是匹配:
let str=“*96*是*5*而不是*547*”;
console.log(str.split(/(\*\d*\*))/g.filter(Boolean))
我知道您要求的是一个简单的正则表达式答案,但是使用带有正则表达式分隔符的split怎么样?然后,它将把字符串拆分到数组中的位置
var test=“*96*是*5*而不是*547*”;
var splits=test.split(/\*\d*\*/g);
控制台日志(拆分)代码>您想要匹配项还是要从字符串中删除它们?您可以使用split获取匹配项console.log(str.split(/\*\d*\*/g)。filter(Boolean))
我想匹配所有内容。然后console.log(str.split(/(\*\d*\*)/g)。filter(Boolean))
很好的解决方案。谢谢