首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JS正则表达式按行拆分

JS正则表达式按行拆分
EN

Stack Overflow用户
提问于 2011-02-18 05:17:45
回答 7查看 107.1K关注 0票数 86

如何将一段很长的文本拆分成单独的行?为什么这两次返回line1?

/^(.*?)$/mg.exec('line1\r\nline2\r\n');

"line1","line1“

我打开了多行修饰符,使^$匹配行首和行尾。我还打开了全局修改器来捕获所有行。

我希望使用正则表达式拆分,而不是String.split,因为我将同时处理Linux \n和Windows \r\n行结尾。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-02-18 05:44:58

arrayOfLines = lineString.match(/[^\r\n]+/g);

正如Tim所说,这既是整个匹配,也是捕获。无论全局修饰符是什么,regex.exec(string)似乎都会在找到第一个匹配项时返回,而string.match(regex)则是全局匹配。

票数 155
EN

Stack Overflow用户

发布于 2011-02-18 05:40:21

使用

result = subject.split(/\r?\n/);

正则表达式返回line1两次,因为line1既是整个匹配,也是第一个捕获组的内容。

票数 111
EN

Stack Overflow用户

发布于 2013-08-30 00:11:31

我假设下面是换行符

  1. \r依次为\n
  2. \n和\r
  3. \n单独存在
  4. \r单独存在

请使用

var re=/\r\n|\n\r|\n|\r/g;

arrayofLines=lineString.replace(re,"\n").split("\n");

获取所有行的数组,包括空行。

请使用

arrayOfLines = lineString.match(/[^\r\n]+/g); 

对于非空行的数组

票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5034781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档