JavaScript正则表达式只捕获第一个匹配

时间:2017-08-28 16:13:58

标签: javascript regex google-apps-script

https://github.com/Kyubyong/wordvectors

我需要解析多个看起来像使用谷歌应用脚​​本的电子邮件正文:

Name: Bob smith
Email: hellol@aol.com
Phone Number: 4243331212

我想拆分每行开头的标题。我有以下功能:

function parseBody (i, body) {

   var split = body.split(new RegExp(/(\w*): ([^\t\r\n]*)[\t\r\n]*/)) //removes trailing line feed

 .filter(function (x) { return x })

 .....


 }

但是正则表达式不起作用,只在我enter image description here上测试时捕获第一个标题。我做错了什么?

编辑:

http://www.regexpal.com/

1 个答案:

答案 0 :(得分:2)

您需要添加g标记,以确保它在第一场比赛后不会停止。

/(\w*):/g

Demo

然后,你的整个正则表达式是:

/(\w*): ([^\t\r\n]*)[\t\r\n]*/g

您可能希望将其更改为(^[^:]+),因此您可以在第一部分中添加空格(例如在电话号码中)。另外,添加m标志以使其成为多行:

 /(^[^:]+): ([^\t\r\n]*)[\t\r\n]*/mg

Demo