我试图将一个字符串最终拆分成一个二维数组,用分号作为分隔符。
var str = "2;poisson
poisson
3; Fromage
6;Monique"
至
var arr = [2, "poisson
poisson"],
[3," Fromage"],
[6,"Monique"]
数组的格式为
[int, string that may start with white space and may end with possible new lines]
第一步是通过regex,但是,使用(\d+\;\s?)(.)+
并不能用一个新的.Regex101行来抓取行。
我有点困惑如何继续,因为换行符/回车很重要,我不想失去它们。我的RegEx Fu今天很弱。
2条答案
按热度按时间bvpmtnay1#
使用Javascript,您可以使用2个撷取群组:
模式匹配:
\b
字边界(\d+);
捕获组1,捕获1+个数字,然后匹配;
(
捕获组2[^]+?
匹配任意字符(包括换行符)1次以上)
关闭”组(?=
正前瞻,Assert右边是什么\n\s*\d+;|$
匹配换行符后跟可选空格字符和第一个模式,或者匹配字符串的结尾)
关闭前瞻Regex demo
xesrikrc2#
下面是一个简短而简洁的解决方案,可以通过两个嵌套的
.split()
来获得结果:输出量:
第一个拆分正则表达式的解释:
\n
-换行符(可能更改为[\r\n]+
以支持Windows换行符(?! )
-空间的负先行查找