如何使用正则表达式在JavaScript中拆分字符串?

3

这里有一个字符串:

var str = "a1c a12c a23c ac 1234 abc";

以及一个正则表达式:

var re = /a(\d*)c/g;

我想通过 ac 之间的数字来分割 str,我想要的结果是:

['a','c a','c a','c a','c 1234 abc']

如何做到呢?


结果不应该是 ['a', 'c a', 'c a', 'c ac 1234 abc'] 吗? - marvel308
@marvel308 很抱歉!为什么结果应该是 ['a','c a','c a','c ac 1234 abc']?我希望结果是 ['a','c a','c a','c a','c 1234 abc']。我也想分割 ac - Guo
2个回答

3

一种方法是用一个特殊字符(在这个例子中是'-')替换数字,然后使用该字符分割。

str.replace(/a(\d*)c/g, 'a-c').split('-');

var str = "a1c a12c a23c ac 1234 abc";
var re = /a(\d*)c/g;

console.log(str.replace(re, 'a-c').split('-'));


0
你可以使用正向预查。

var str = "a1c a12c a23c ac 1234 abc";

console.log(str.split(/\d*(?=\d*c.*a)/));


谢谢!但是如果 str = "b1c a12c a23c ac 1234 abc",结果是错误的。 - Guo
@Guo,请同时添加所需的结果。 - Nina Scholz
我想要的结果是 ['b1c a','c a','c a','c 1234 abc'],但实际上结果是 ['b','c a','c a','c a','c 1234 abc'] - Guo
@Guo问:b1c a是如何被解析为"b", "c a"的? - Rajesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接