javascript - 用于以空格分隔的多个单词匹配的正则表达式

标签 javascript regex

我想匹配前后都有空格的字符串中出现的所有单词。

例如:字符串:“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/

相关文章:

正则表达式前瞻断言

javascript - Angularjs 允许字母字符和特殊字符,但不允许数字

javascript - 为主菜单中所有 'a'标签添加点击事件

javascript - Node.js 服务器解释的未定义 HTTP GET 请求

Java - 提取 [* ... *] 之间的所有内容

c++ - 奇怪的错误 - std::regex 只匹配前两个字符串

javascript - 使用 ng-click 从 Controller 调用函数到我的 View

javascript - FormData 中的对象数组将 0 个对象传递给 Controller

python - 从 python 中的字符串获取城市、州或 zip

java - 行的正则表达式以大写字母单词开头