C# 正则表达式允许空格但不允许在开头、结尾和重复的空格
C# regex expression for allowing spaces but not at the beginning, end and repeated spaces
我有一个 UI 字段的正则表达式验证:
^[a-z|A-Z|0-9|_|\-]+$
现在我需要允许 spaces 作为条目,所以如果我将 space 添加到正则表达式,如下所示:
^[a-z|A-Z|0-9|_| |\-]+$
它确实允许 space 开始、结束和重复 space 秒。
有人可以帮我解决这个问题吗?
我建议您从字符 class 中删除 |
符号,并且还包括 \s
而不是白色 space。
@"^[a-zA-Z0-9_-]+(?:\s[a-zA-Z0-9_-]+)*$"
但是 \s
也匹配换行符。因此,根据您的需要,将上述正则表达式中的 \s
更改为白色 space。这里最主要的是匹配的非捕获组(?:\s[a-zA-Z0-9_-]+)*
,
- a space
\s
以及以下一个或多个单词或连字符字符 [a-zA-Z0-9_-]+
,零次或多次 (?:\s[a-zA-Z0-9_-]+)*
.
我有一个 UI 字段的正则表达式验证:
^[a-z|A-Z|0-9|_|\-]+$
现在我需要允许 spaces 作为条目,所以如果我将 space 添加到正则表达式,如下所示:
^[a-z|A-Z|0-9|_| |\-]+$
它确实允许 space 开始、结束和重复 space 秒。
有人可以帮我解决这个问题吗?
我建议您从字符 class 中删除 |
符号,并且还包括 \s
而不是白色 space。
@"^[a-zA-Z0-9_-]+(?:\s[a-zA-Z0-9_-]+)*$"
但是 \s
也匹配换行符。因此,根据您的需要,将上述正则表达式中的 \s
更改为白色 space。这里最主要的是匹配的非捕获组(?:\s[a-zA-Z0-9_-]+)*
,
- a space
\s
以及以下一个或多个单词或连字符字符[a-zA-Z0-9_-]+
,零次或多次(?:\s[a-zA-Z0-9_-]+)*
.