编程语言
首页 > 编程语言> > javascript – 在两个字符串之间匹配字符串

javascript – 在两个字符串之间匹配字符串

作者:互联网

如果我有这样的字符串:

var str = "play the Ukulele in Lebanon. play the Guitar in Lebanon.";

我想得到每个子串“play”和“in”之间的字符串,所以基本上是一个带有“Ukelele”和“Guitar”的数组.

现在我正在做:

var test = str.match("play(.*)in");

但是在第一个“游戏”和最后一个“在”之间返回字符串,所以我得到了“在黎巴嫩的尤克里里琴.弹吉他”而不是两个单独的字符串.有没有人知道如何全局搜索字符串以查找起始字符串和结束字符串之间的所有子字符串?

解决方法:

你可以使用正则表达式

play\s*(.*?)\s*in

>使用/ as分隔符作为正则表达式文字语法
>使用惰性组匹配最小可能

演示:

var str = "play the Ukulele in Lebanon. play the Guitar in Lebanon.";
var regex = /play\s*(.*?)\s*in/g;

var matches = [];
while (m = regex.exec(str)) {
  matches.push(m[1]);
}

document.body.innerHTML = '<pre>' + JSON.stringify(matches, 0, 4) + '</pre>';

标签:string-matching,javascript,string,regex
来源: https://codeday.me/bug/20191003/1845853.html