繁体   English   中英

如何在javascript中从正则表达式的开头开始拆分字符串

[英]How to split a string starting at the beginning of a regex in javascript

例如,我在字符串中有一些数据

const rawData = `1   Jon Doe 3434 535 3 3 353 HI 3535
2    Jane Smith 23 5235 5 5 2352 HELLO 3543
3      Some Guy 4534 35 5345 4 5345 MEOW 4354`

我想使用 .split() 方法使每一行(从订单号开始到最后一个值的末尾)成为数组中的自己的值。

我试过了

rawData.split(/([0-9]+\s+[A-Z][a-z])/g);

正则表达式找到一个数字,后跟一些空格,然后是一个大写字母和一个小写字母(订单号直到名字的开头)

这返回

["", "1 Jo", "n Doe 3434 535 3 3 353 HI 3535", "2 Ja", "ne Smith 23 5235 5 5 2352 HELLO 3543", "3 So", "me Guy 4534 35 5345 4 5345 MEOW 4354"]

我想通过在正则表达式的开头拆分字符串来获得 3 个值。 所以我想结束:

["1 Jon Doe 3434 535 3 3 353 HI 3535", "2 Jane Smith 23 5235 5 5 2352 HELLO 3543", "3 Some Guy 4534 35 5345 4 5345 MEOW 4354"]

我可以想到一个解决方法,使用 for 循环来连接数组中的值。 我很好奇是否有办法在一行上做到这一点。 谢谢!

编辑

我刚刚在正则表达式中发现了前瞻,这有效:

rawData.split(/\s(?=\d+\s+[A-Z][a-z])/g);

为什么不按新行拆分?

 const rawData = `1 Jon Doe 3434 535 3 3 353 HI 3535 2 Jane Smith 23 5235 5 5 2352 HELLO 3543 3 Some Guy 4534 35 5345 4 5345 MEOW 4354`, result = rawData.split(/\\n/); console.log(result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM