如何将一段很长的文本拆分成单独的行?为什么这两次返回line1?
/^(.*?)$/mg.exec('line1\r\nline2\r\n');
"line1","line1“
我打开了多行修饰符,使^
和$
匹配行首和行尾。我还打开了全局修改器来捕获所有行。
我希望使用正则表达式拆分,而不是String.split
,因为我将同时处理Linux \n
和Windows \r\n
行结尾。
发布于 2011-02-18 05:44:58
arrayOfLines = lineString.match(/[^\r\n]+/g);
正如Tim所说,这既是整个匹配,也是捕获。无论全局修饰符是什么,regex.exec(string)
似乎都会在找到第一个匹配项时返回,而string.match(regex)
则是全局匹配。
发布于 2011-02-18 05:40:21
使用
result = subject.split(/\r?\n/);
正则表达式返回line1
两次,因为line1
既是整个匹配,也是第一个捕获组的内容。
发布于 2013-08-30 00:11:31
我假设下面是换行符
请使用
var re=/\r\n|\n\r|\n|\r/g;
arrayofLines=lineString.replace(re,"\n").split("\n");
获取所有行的数组,包括空行。
或
请使用
arrayOfLines = lineString.match(/[^\r\n]+/g);
对于非空行的数组
https://stackoverflow.com/questions/5034781
复制相似问题