使用RegEx忽略空字符串和空格

时间:2011-07-05 16:13:18

标签: c# .net regex string

我有以下简单的测试,由于某种原因不会返回true。

string[] test = new string[] { "A", " ", " ", "D", "" };
Regex reg = new Regex(@"^[A-Z]\s$");
bool ok = test.All(x => reg.IsMatch(x));

我也尝试将\ s放在方括号内但不起作用

我想确保数组中非空或空格的所有字符都与A-Z匹配。

我意识到我可以在All之前做一个Where(x =>!String.IsNullorEmpty(x)&& x!=“”),但我认为Regex可以处理这种情况

3 个答案:

答案 0 :(得分:5)

我想你想要:

Regex reg = new Regex(@"^[A-Z\s]*$");

基本上说“字符串完全由空格或A-Z组成”。

如果您想将其强制为单个字符或为空,请将其更改为:

Regex reg = new Regex(@"^[A-Z\s]?$");

答案 1 :(得分:1)

Enumerable.All<TSource> Method确定序列的所有元素是否满足条件。

答案 2 :(得分:0)

正则表达式^[A-Z]\s$表示:双字符串,第一个字符为A-Z,第二个字符为空格。你真正想要的是^[A-Z\s]*$