.net - 正则表达式开头或结尾没有空格,但中间允许有空格,但也只允许一个字符输入 :

标签 .net regex

正则表达式在开始或结束时没有空格,但允许中间有空格,但也只允许一个字符输入:

我得到的最接近的是:^([^\s])([\sa-zA-Z0-9_\-]*)([^\s])$
这样做的问题是只有当输入是三个或更多字符时它才会通过,我需要它接受单个字符并通过。例如:

以下应该通过(使用“以便于阅读,字符串中不需要)

"A"
"A B"
"Hello There"

以下应该失败
" A"
"A "
" A "
" test"

还需要只允许 A-Z a-z 0-9 - _ 虽然出来,在中间部分但不是在开始或结束处添加空格

有任何想法吗?

谢谢

最佳答案

非空格,可选后跟多组空格,然后是非空格:

^[^\s]+(\s+[^\s]+)*$

编辑:

要包含字符限制,只需用允许的字符替换非空格类:
^[-_a-zA-Z0-9]+(\s+[-_a-zA-Z0-9]+)*$

另外,考虑对 Unicode 友好并使用类似的东西
^[-_\p{Alnum}]+(\s+[-_\p{Alnum}]+)*$

(假设您的正则表达式解释器允许)。

关于.net - 正则表达式开头或结尾没有空格,但中间允许有空格,但也只允许一个字符输入 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14715133/

相关文章:

c# - 带有 retrofit 的多部分内容

c# - 设计 - C# 日期格式说明符中的约定

.net - 如何允许用户在 WPF 中向 UI 控件添加注释?

java - 正则表达式在 java 代码中不起作用,但在测试站点上不起作用

PHP 使用正则表达式验证 CRON

javascript - Jquery在不使用split的情况下在div内的x个单词后插入html

Python正则匹配多次,结果分开存储

c# - Task.Wait 在 OperationCanceledException 情况下的意外行为

regex - 无法增加在正则表达式匹配的第 1 组中捕获的数字

c# - ASP.NET MVC 4 项目中的共享文件夹被隐藏