我有以下字符串:
var str = '01. Part1. 02. Part2. 04. Part3';
我需要从中获取数组:
['01. Part1.', '02. Part2.', '04. Part3']
到目前为止我已经尝试过:
str.split(/\d+.(.*)/);
但结果不是我需要的:
["", " Part1. 02. Part2. 04. Part3", ""]
最佳答案
主要问题是 *
是贪婪的。通过添加 ?
使其变得懒惰。此外,这与 match
一起使用效果更好。方法,因为 split
会将正则表达式匹配视为定界符,(没有捕获组)不会包含在结果中。
var str = '01. Part1. 02. Part2. 04. Part3';
var arr = str.match(/\d+\..*?(\.|$)/g);
console.log(arr);
(\.|$)
部分用于告诉 .*?
应该去哪里,并处理字符串末尾的差异,没有终端点的地方,就像其他部分一样。 $
与 end-of-string 匹配。
关于javascript - 如何将文本字符串拆分为多个部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41665218/