正则表达式中的可选组

时间:2015-11-30 13:39:45

标签: javascript regex

如何在JavaScript正则表达式中创建可选的非捕获组?

/foo (bar )?bam/ // this does not work for me...

我想要匹配

foo bar bam 

foo bam

1 个答案:

答案 0 :(得分:3)

(?:...)

的帮助下创建非捕获组
foo (?:bar )?bam
     ^^

请参阅regex demo

请注意,非捕获组仍然消耗字符,因此与非捕获组匹配的子字符串仍然是匹配的一部分。

段:

var res = 'foo bar bam\nfoo bam'.match(/foo (?:bar )?bam/g);
document.write(JSON.stringify(res));