Java正则表达式,用于查找单个字符序列和一系列数字

时间:2015-06-20 14:37:21

标签: java regex

我需要一个正则表达式,它解决了以下任务:     - 输入 - 从a到j的单个字符和从1到10(包括)的字符后的单个数字

正确:a1a2f3b7c10
错误:a11b0abva34h111c

我已尝试过这些:^[a-j]{1}[0-9|10]{1,2}$ ^[a-j]{1}[0-9]{2}$

提前致谢!

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]之类的单个字符,表示abc。如果您将其写为[10],则表示10,而不是10

而不是[0-9|10],而不是01或..或9|1或{{1}你需要写一些更接近0的东西(注意[0-9]|10的位置) ]也是多余的。

你的正则表达式的其余部分似乎很好。