首页 > 解决方案 > 用于隔离单词/拆分单词的 JavaScript 正则表达式

问题描述

我试图在一个字符串中分隔多个单词,而不删除任何内容,并将它们形成一个数组。我正在使用 .split 方法,但找不到多个单词和包括空格的确切模式。

我的字符串是:

const testSentence = 'a foxy dog met a dogged fox';

我想将它拆分为“狗”和“狐狸”这两个词,所以我得到了数组:

['a foxy ','dog',' met a dogged ','fox']

我尝试了各种组合,但没有任何东西适用于所有部分,所以任何指针都将不胜感激。

标签: javascriptregexstringsplit

解决方案


结合单词边界使用非捕获组可以做到:

const s = 'a foxy dog met a dogged fox';

const r = s.split(/(?:\b(dog|fox)\b)/);

console.log(r);

如果空段困扰您,您可以轻松地将它们过滤掉:

const s = 'a foxy dog met a dogged fox';

const r = s.split(/(?:\b(dog|fox)\b)/).filter(x => x);

console.log(r);


推荐阅读