我想将一个字符串拆分为范围和特定模式,同时保持分隔符。根据我的发现,最好使用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"]
是否有一种简单的方法可以修改我的正则表达式,使小数与空格匹配,使其保持一行?
答案 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"]