这是我的弦
var str = "Here is some &text:also , here is &another:one"
var myRegExp = /\b\s(\&){1}(\w)+(\:){1}(\w)+\s?\b/g
str.match(myRegExp)
//[" &text:also", " &another:one"]
到现在为止按预期工作,问题出在拆分
str.split(myRegExp)
期望值:[“这里有一些”,“,这里是”]
现实[[这里是一些“,”&“,” t“,”:“,” o“,”,这里是“,”&“,” r“,”:“,” e“,”“]
这可能是什么原因?我可以通过循环并在比赛中进行拆分来提取所需的数组,除此之外没有捷径可走吗?
最佳答案
这是因为regex
引擎还将group
值也包含在结果中。
所以要分割的正则表达式是
/\b\s(?:\&){1}(?:\w)+(?:\:){1}(?:\w)+\s?\b/g
或根本不需要将其分组
/\b\s\&{1}\w+\:{1}\w+\s?\b/g