我正在为我的.NET程序(C#)搜索正则表达式,该正则表达式忽略多个空格和换行符,以及匹配组之间所有这些组合。
例如,在以下两个组之间可以有\r \n \t
或空格
([A-Z])([A-Z0-9<])
这是一些具有所需输出的输入:
P\n0 -> P0
N\n\rF -> NF
A\rP -> AP
A\r[space][space][space]\nP -> AP
E\n\r\nF -> EF
N\t\rF -> NF
R\t\n\r[space]F -> RF
A\rP -> AP
答案 0 :(得分:1)
您可以在组之间使用\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*
替换为[\t\r\n ]*
(或[\t\r\n ]+
)以仅匹配您在问题中提到的空白。