我需要一个正则表达式,它解决了以下任务: - 输入 - 从a到j的单个字符和从1到10(包括)的字符后的单个数字
正确:a1
,a2
,f3
,b7
,c10
错误:a11
,b0
,abv
,a34
,h11
,1c
我已尝试过这些:^[a-j]{1}[0-9|10]{1,2}$
^[a-j]{1}[0-9]{2}$
提前致谢!
答案 0 :(得分:2)
这应该这样做。
"^[a-j]([1-9]|10)$"
第一个括号与单个字母匹配,然后有一个替代,可以是单个数字或数字10。
^[a-j]{1}[0-9|10]{1,2}$
{1}
是多余的。 [0-9|10]
表示:字符0,1,... 9或|
中的任意字符,因为[]
的作用类似于集合表达式,其中 - 用于范围。此外,你可以允许这个单个字符写一次或两次,这将匹配a11,a12,... j99等。
^[a-j]{1}[0-9]{2}$
更好,但在信后允许任何两位数字。
答案 1 :(得分:2)
[..]
是一个字符类,您可以在其中指定[abc]
之类的单个字符,表示a
或b
或c
。如果您将其写为[10]
,则表示1
或0
,而不是10
。
而不是[0-9|10]
,而不是0
或1
或..或9
或|
或1
或{{1}你需要写一些更接近0
的东西(注意[0-9]|10
的位置)
]
也是多余的。
你的正则表达式的其余部分似乎很好。