c# - 使用正则表达式忽略空字符串和空格

标签 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 reg = new Regex(@"^[A-Z\s]*$");

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

如果你想强制为单个字符或为空,只需将其更改为:

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

关于c# - 使用正则表达式忽略空字符串和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6585705/

相关文章:

c# - 创建 IEnumerable<T> 或 ICollection<T> 的最简单和最紧凑的方法是什么?

c# - IComparable 和 IComparable<T>

c# - 加密字节数组,从字符串转换为8位整数数组

c# - 未设置 cookie 路径时的 CookieCollection 问题

Javascript正则表达式搜索直到但不包含

c# - 递归触发 SizeChanged 事件

c# - 应如何在 IHostedService 中使用取消标记?

c# - 检查浮点值是否等于 0 是否安全?

php - 正则表达式匹配给定字符串的 3 个部分

regex - 为什么我的 HTML5 表单验证模式 (/^\S{6,}$/) 触发不正确?