我正在为我的 .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 ]+
(,以仅匹配您在问题中提到的空格。