我有下一个字符串:
1 2 OR 3 4 OR 5 OR 6 7 OR 8
我需要根据OR使用正则表达式将它分离到不同的部分,例如我需要接下来的这一行:
1
2 OR 3
4 OR 5 OR 6
8 OR 8
//1 (2 OR 3) (4 OR 5 OR 6) (7 OR 8)
怎么做 - 谢谢!)
对不起,但忘了提,这里不仅仅是数字:第一个第二或第三个第四或第五或第六个第七或第八个
答案 0 :(得分:3)
使用与任意数量OR
和其他数字匹配的数字匹配的正则表达式:
var s = '1 2 OR 3 4 OR 5 OR 6 7 OR 8';
var re = /\d+(?: OR \d+)*/g;
var m;
while ((m = re.exec(s)) != null) {
console.log(m[0]);
}
答案 1 :(得分:2)
这个简单的正则表达式应该可以工作:
var str = '1 2 OR 3 4 OR 5 OR 6 7 OR 8';
str.match(/\w+( OR \w+)*/g);
答案 2 :(得分:0)
您可以使用:
x.replace(/(\d+)\s+(\d+)/g, "$1\n$2");
其中x
为"1 2 OR 3 4 OR 5 OR 6 7 OR 8"
输出将是:
1
2 OR 3
4 OR 5 OR 6
7 OR 8
答案 3 :(得分:0)
这可能是你需要的:
(?:^|(?<=\d ))(\d+(?: +OR +\d+)*)(?=(?: +\d|$))
将输出以下匹配项:
[Match number 1]
[Capture Group 1] '1' found at character 1
[Match number 2]
[Capture Group 1] '2 OR 3' found at character 3
[Match number 3]
[Capture Group 1] '4 OR 5 OR 6' found at character 10
[Match number 4]
[Capture Group 1] '7 OR 8' found at character 22