递归Regex表达式按字符拆分表达式

时间:2016-04-22 11:27:05

标签: javascript regex

我正在寻找一个正则表达式来分割以下类型的数据:

<exp>(;<exp>)*

并收到每个 exp 的列表,但不会收到分隔符&#39;;&#39;。&#39;。

到目前为止,我有([^;])(?:;([^;])),但此正则表达式在&#39后的第一个 exp 处停止;;&#39 ;.有没有办法让前瞻无限?

这是一个具体的例子:

23;hello;2452;ad34aa;bye

我想得到:

[0] = 23
[1] = hello
[2] = 2452
[3] = ad34aa
[4] = bye

如果这个问题得到解答,我很抱歉,但我找不到合适的表达方式。如果有,请告诉我链接。

感谢您花时间阅读本文:)

1 个答案:

答案 0 :(得分:4)

使用String#split

var array = '23;hello;2452;ad34aa;bye'.split(';');
document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');

// as mentioned from Avinash Raj
var array2 = '23;hello;2452;ad34aa;bye'.match(/[^;]+/g);
document.write('<pre>' + JSON.stringify(array2, 0, 4) + '</pre>');