难以将正则表达式分成3个捕获组

时间:2016-05-16 11:48:34

标签: regex

我在JavaScript中有以下正则表达式;

/^([^\s]* > )(.*)/gmi

我想让它在以下文字上运行;

  

危险>这是一些危险通知文本

最终结果应该是3个捕获的字段; 'danger','>'和'这是一些危险通知文本'。

尽管如此,我只得到2。

'危险>' “这是一些危险通知文本”。

有没有办法获得'>'与其他人分开?

2 个答案:

答案 0 :(得分:1)

执行:

(^\S+)\s+(>)\s+(.*)

现在,\1danger\2>\3this is some danger notification text

Demo

答案 1 :(得分:1)

添加新的捕获组就像将括号括在您想要分组的内容一样简单。在你的正则表达式中,你包括>作为第一个捕获组的一部分,这就是为什么你自己没有得到它。

将其更改为

^([^\s]*) (>) (.*)

这将分别捕获第一个单词>和以下文本。

请参阅https://regex101.com/r/dR5rK5/1以查看正在运行的正则表达式。