【发布时间】:2016-09-13 18:55:24
【问题描述】:
跟随Split string that used to be a list,我正在这样做:
console.log(lines[line]);
var regex = /(-?\d{1,})/g;
var cluster = lines[line].match(regex);
console.log(cluster);
这会给我这个:
((3158), (737))
["3158", "737"]
其中 3158 将在我的程序中被视为 ID,而 737 将被视为关联数据。
我想知道是否也有办法处理这种输入:
((3158, 1024), (737))
ID 将是一对,并执行以下操作:
var single_regex = regex_for_single_ID;
var pair_regex = regex_for_pair_ID;
if(single_regex)
// do my logic
else if(pair_regex)
// do my other logic
else
// bad input
这可能吗?
澄清:
我感兴趣的是区别对待这两种情况。例如,一种解决方案是具有这种行为:
((3158), (737))
["3158", "737"]
对于对,连接 ID:
((3158, 1024), (737))
["31581024", "737"]
【问题讨论】:
-
让我澄清一下,您希望得到
((3158, 1024), (737))的输入并且您想将3158, 1024匹配为单个ID,对吗?还是您希望将3158作为ID 和1024作为ID 匹配并返回两个ID? -
单个或成对
(-?\d+)(?:\s*,\s*(-?\d+))?或-?\d+(?\s*,\s*-?\d+)?或(-?\d+(?\s*,\s*-?\d+)?)这取决于你想在数组中看到什么逗号等等... -
vlaz 已更新。 @sln 嗯,对吗?我的意思是正则表达式是您在代码中拥有的一切吗?如果我这样做,两者都会导致语法错误
var regex = ..."; -
非常正确。在 JS 中你可以像馅饼一样切片,拿走你想要的。有很多方法可以做到这一点。
-
(with delimiters):单个或成对
/(-?\d+)(?:\s*,\s*(-?\d+))?/或/-?\d+(?\s*,\s*-?\d+)?/或/(-?\d+(?\s*,\s*-?\d+)?)/这取决于你想在数组中看到什么逗号等等。 .
标签: javascript html regex string io