我正在试图弄清楚如何匹配以下规则......
可接受的匹配示例:
""
" 43"
" D42"
不可接受的匹配示例:
"1 A3"
"1 "
" "
"A 1 "
我尝试使用以下正则表达式,但它没有给出预期的结果。
(([\s]*[0-9A-Z]*){4}|)
答案 0 :(得分:4)
正则表达式对计数不是很好,但是当数量很少时,例如4,你可以构建一个简单的重复正则表达式来完成这项工作:
^(|[0-9A-Z]{4}| {1}[0-9A-Z]{3}| {2}[0-9A-Z]{2}| {3}[0-9A-Z]{1})$
此正则表达式列出了一个空字符串,以及四个可接受的空格用法:
答案 1 :(得分:1)
根据OP的问题,要求匹配字母数字字符,除非他们指定RegexOptions.IgnoreCase
,否则接受的答案将与小写a-z
不匹配。
所以正确的解决方案应该是通过该选项,选择
^(|[\w]{4}| {1}[\w]{3}| {2}[\w]{2}| {3}[\w]{1})$
或者选择
^(|[0-9A-Za-z]{4}| {1}[0-9A-Za-z]{3}| {2}[0-9A-Za-z]{2}| {3}[0-9A-Za-z]{1})$