我想匹配前后都有空格的字符串中出现的所有单词。
例如:字符串:“Apple Apple Apple Apple”。
这里我希望匹配是“Apple ”,并且上述场景应该有 4 个匹配。
如果我只是将正则表达式设置为 /Apple/
,那么只有第 1 个和第 3 个会匹配。
我知道我们可以使用正则表达式中的lookahead和lookbehind来做到这一点,但safari和IE不支持它。
最佳答案
您可以匹配 Apple
并在右侧断言一个空格。正如您所知,空格就在那里,您可以将其添加到结果中。
const regex = / Apple(?= )/g;
const s = " Apple Apple Apple Apple ";
console.log(Array.from(s.matchAll(regex), m => m[0] + " "));
或者可以捕获第1组中的Apple
,并获取代码中m[1]
表示的第1组值:
const regex = /(?=( Apple ))/g;
const s = " Apple Apple Apple Apple ";
console.log(Array.from(s.matchAll(regex), m => m[1]));
关于javascript - 用于以空格分隔的多个单词匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67792580/