在保持分隔符的同时匹配范围和特定模式

时间:2014-02-28 14:59:05

标签: javascript regex

我想将一个字符串拆分为范围和特定模式,同时保持分隔符。根据我的发现,最好使用match而不是split让我说我有以下代码。

var stringy = 'a1 ... c3d4 ... f6';
var splitStringy = stringy.match(/[^0-9]+[0-9]+/g);
console.log(splitStringy);

现在它返回:

["a1", " ... c3", " d4", " ... f6"]

但我希望它返回(保持...周围的空格):

["a1", " ... ", "c3", "d4", " ... ", "f6"]

是否有一种简单的方法可以修改我的正则表达式,使小数与空格匹配,使其保持一行?

3 个答案:

答案 0 :(得分:3)

您可以使用:

s = 'a1 ... c3d4 ... f6';
m = s.match(/[a-z]+[0-9]+|\W+/g);
["a1", " ... ", "c3", "d4", " ... ", "f6"]

答案 1 :(得分:0)

var splitStringy = stringy.match(/(\w+| \.\.\. )/g);

将会执行此操作,它将匹配任何以'...'分隔的单词字符(a-z,0-9,下划线)序列。

结果:

["a1", " ... ", "c3d4", " ... ", "f6"] 

答案 2 :(得分:0)

以下内容会根据您的意愿将所有内容拆分,但不会保留小数点后的空格:

var splitStringy = stringy.match(/[^0-9 ]+[0-9.]+/g);

那会回来:

["a1", "...", "c3", "d4", "...", "f6"]