使用正则表达式按空格拆分字符串

时间:2017-06-27 05:31:25

标签: node.js regex coffeescript

假设我有一个字符串str = "a b c d e"str.split(' ')给了我一系列元素[a,b,c,d,e]。 我如何使用正则表达式进行匹配?

例如: str.match(/ some regex /)给出了[' a',''' c'' d''' ; E&#39]

2 个答案:

答案 0 :(得分:6)

String.split()支持regex作为参数;

String.prototype.split([separator[, limit]])

let str = 'a b c d e';
str.split(/ /);
// [ 'a', 'b', 'c', 'd', 'e' ]

let str = 'a01b02c03d04e';
str.split(/\d+/);
// [ 'a', 'b', 'c', 'd', 'e' ]

答案 1 :(得分:4)

根据您的使用情况,您可以尝试const regex = /(\w+)/g;

这会捕获任何单词(与[a-zA-Z0-9_]相同)一次或多次。这假设您可以在空格分隔的字符串中包含多于一个字符的项目。

这是我在regex101中做的一个例子:

const regex = /(\w+)/g;
const str = `a b c d efg  17 q q q`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }

    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}