可选的非捕获组是多余的吗?
是以下正则表达式:
(?:wo)?men
语义上等同于以下正则表达式?
(wo)?men
你的(?:wo)?men
和(wo)?men
在语义上是等价的,但在技术上是不同的,即第一个是使用非捕获而另一个是捕获组。因此,问题是为什么在我们捕获它们时使用非捕获组?
非捕获组有时会有所帮助。
此外,它只是makes our matches cleaner:
您可以使用非捕获组来保留组织或分组权益,但不会产生捕获的开销。
重新考虑现有正则表达式以将捕获转换为非捕获组似乎不是一个好主意,因为它需要付出太多努力。