正则表达式以匹配组之间的空格和换行符的任何组合和数量



我正在为我的 .NET 程序 (C#( 寻找一个正则表达式,它忽略了多个空格和换行符,以及匹配组之间的所有组合。

例如,在以下两组之间可以有r n t或空格

([A-Z])([A-Z0-9<])

这是具有所需输出的一些输入:

Pn0 -> P0 
NnrF -> NF
ArP -> AP
Ar[space][space][space]nP -> AP
EnrnF -> EF
NtrF -> NF
Rtnr[space]F -> RF
ArP -> AP

您可以在组之间使用 s*(0 个或更多空格(,一旦匹配,就连接捕获的值:

var result = Regex.Matches(s, @"([A-Z])s*([A-Z0-9<])")
        .Cast<Match>()
        .Select(x => $"{x.Groups[1].Value}{x.Groups[2].Value}")
        .ToList();

如果两组之间必须至少有 1 个空格,请将 * 替换为 +

如果您的空格字符仅限于特定列表,请将s*替换为 [trn ]*(或 [trn ]+ (,以仅匹配您在问题中提到的空格。

最新更新