Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Regex-如何匹配所有与模式匹配和不匹配的字符组?_Javascript_Regex - Fatal编程技术网

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))
很好的解决方案。谢谢