我有字符串:
1,2,3,4,5,6,7,8
我需要将这一数字序列分成一对。
输出应如下所示:
[
[1,2],
[3,4],
[5,6],
[7,8],
]
我正在尝试这个正则表达式:
/(([\d]+)[,\s]([\d]+)[,\s]?)+/
在php中:
preg_match_all('/(([\d]+)[,\s]([\d]+)[,\s]?)+/', $item['cords'], $matches);
但输出匹配只是最后两个数字 - https://regex101.com/r/oV2nQ4/1
答案 0 :(得分:1)
答案 1 :(得分:1)
var str = '1,2,3,4,5,6,7,8';
var regex = /(\d+\,\d+)/g;
var r = str.match(regex).map(e => e.split(',').map(Number));
document.write('<pre>' + JSON.stringify(r) + '</pre>');
答案 2 :(得分:0)
试试这个经过测试的sed
命令:
sed -e 's/\([0-9],[0-9]\)/[\1]/g' -e 's/^\(.*\)$/[\1,]/' -e 's/[[][[]/[\n [/' -e 's/[]],/],\n /g' -e 's/ []]/]/g'
测试:
$ printf "1,2,3,4,5,6,7,8\n" | sed -e 's/\([0-9],[0-9]\)/[\1]/g' -e 's/^\(.*\)$/[\1,]/' -e 's/[[][[]/[\n [/' -e 's/[]],/],\n /g' -e 's/ []]/]/g'
[
[1,2],
[3,4],
[5,6],
[7,8],
]