【发布时间】:2019-04-15 15:55:49
【问题描述】:
要在正则表达式中创建捕获组,请使用 (match) 并在其前面加上 ?: 以使其不被捕获,例如 (?:match)。问题是,在任何一种复杂的正则表达式中,我发现自己想要创建比捕获组更多的非捕获组,所以我想颠倒这个逻辑,只捕获以?:(或其他)开头的组。我怎样才能做到这一点?我主要在 .NET 中使用正则表达式,但我不介意使用 Perl、PHP、Python、JavaScript 等正则表达式的其他语言的答案。
【问题讨论】:
-
您也许可以使用
RegexOptions.ExplicitCapture(docs.microsoft.com/en-gb/dotnet/api/…) 实例化您的 RegEx 对象 -
@elgonzo 看起来不错,如果你把它作为我可以接受的答案。