我正在尝试弄清楚如何匹配以下规则...
- 正好 4 个字符(字母数字)或零个字符
- 如果只用于左侧填充,字符可以有空格
- 不能只包含 4 个空格
可接受的匹配示例:
""
" 43"
" D42"
Not Acceptable 匹配示例:
"1 A3"
"1 "
" "
"A 1 "
我试过使用以下正则表达式,但它没有给出预期的结果。
(([\s]*[0-9A-Z]*){4}|)
最佳答案
正则表达式在计数方面不是很好,但是当数字很低时,例如四,您可以构建一个简单的重复正则表达式来完成这项工作:
^(|[0-9A-Z]{4}| {1}[0-9A-Z]{3}| {2}[0-9A-Z]{2}| {3}[0-9A-Z]{1})$
此正则表达式列出了一个空字符串,以及四种可接受的空格用法:
- 没有空格,四个字符
- 一个空格,三个字符
- 两个空格,两个字符
- 三个空格,一个字符
关于c# - 带前导空格的确切字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41836744/