/(test|test1|is(cold|warm|large|small))/
iscold / iswarm / islarge / issmall是两个不同的组,因为“is”来自group1,其背后的一切都来自第2组.
如何将它组成一个组,因此iscold | iswarm | islarge | issmall应该是一个组,而不必每次都在它前面键入“is”.
从技术上讲,他们已经在同一组(1号).你只是匹配第二组中的冷/暖……部分,显然你不关心.
如果你想避免这种无用的捕获,你可以使用非捕获组(?:…);
/(test|test1|is(?:cold|warm|large|small))/