繁体   English   中英

获取匹配和不匹配的数组

[英]Get array of both matches and non-matches

我想做的是将一个字符串分成多个连续子字符串的数组,在给定正则表达式的匹配项和不匹配项之间交替。

像这样:

[nonmatch, match, nonmatch, match...]

例如,使用正确的正则表达式(此处的实际表达式并不重要),

"I [went to the doctor] today to [eat some] food"

可能变成:

["I ", "[went to the doctor]", " today to ", "[eat some]", " food"]

我需要这样做,因为我需要暂时取出字符串的某些部分,对字符串的其余部分做一些处理,然后再将前面的部分插回到原处,以再次使字符串完整(只需将整个字符串组合在一起)数组转换成字符串)。

我可以从搜索中找到的是想要摆脱某些字符串(例如,上例中的[])或将一些不匹配项和匹配项结合在一起的人,例如:

["I ", "[went to the doctor] today to ", "[eat some] food"]

您可以为此使用split ,将包含捕获组(即括号)的正则表达式传递给它。 然后,该定界部分也将包含在结果数组中:

 var s = "I [went to the doctor] today to [eat some] food" var result = s.split(/(\\[.*?\\])/); console.log(result); 

匹配项将始终位于结果数组的奇数索引处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM