组内组

时间:2014-05-15 07:55:57

标签: regex

/(test|test1|is(cold|warm|large|small))/

iscold / iswarm / islarge / issmall是两个不同的组,因为“is”来自group1,其背后的一切都来自第2组。 我怎样才能将它组成一个组,因此iscold|iswarm|islarge|issmall应该是一个组,而不必每次都在它前面键入“is”。

2 个答案:

答案 0 :(得分:7)

从技术上讲,他们已经在同一组(1号)。您只是匹配第二组中的cold / warm ...部分,显然您并不关心。

如果您想避免这种无用的捕获,可以使用非捕获组(?:...);

/(test|test1|is(?:cold|warm|large|small))/

答案 1 :(得分:4)

对子部分使用非捕获组。

/(test|test1|is(?:cold|warm|large|small))/