我需要验证输入,例如en-US或en-us或ar-AE 我搜索过网,发现它有点难以理解,并且在字符串上创建一个常规表达式,长度不超过5个字符,并且应该是不区分大小写的。
我创建了一个[a-z][a-z][-][a-z][a-z]
这个工作正常,但它没有检查长度
它也会与en-USXYZ相匹配
此致
答案 0 :(得分:4)
这就是锚点的用途:
(?i)^[a-z]{2}-[a-z]{2}$
在编译正则表达式时也可以设置不区分大小写的选项(?i)
:
Regex regexObj = new Regex("^[a-z]{2}-[a-z]{2}$", RegexOptions.IgnoreCase);
答案 1 :(得分:4)
使用这样的一个:
^[a-z]{2}-[a-z]{2}$
答案 2 :(得分:3)
试试这个:
^[a-z][a-z][-][a-z][a-z]$
答案 3 :(得分:1)
使用此正则表达式:
^[a-z]{2}-[a-z]{2}$
答案 4 :(得分:0)
您应该在表达式中使用锚点:
^[a-z][a-z][-][a-z][a-z]$
答案 5 :(得分:0)
\w{2}[-]\w{2}
应该这样做:
\w
- >性格
{2}
- >确切2次
编辑:\w
也允许号码[a-z]{2}[-][a-zA-Z]{2}
答案 6 :(得分:0)
您使用^
和$
来指定字符串的开头和结尾。
^[a-z][a-z]-[a-z][a-z]$
或使用乘数:
^[a-z]{2}-[a-z]{2}$
除非您为Regex对象指定了case insensetivity,否则您还必须包含大写字符的A-Z
间隔:
^[A-Za-z]{2}-[A-Za-z]{2}$