Java 正则表达式模式来检测两个连续的数字,后跟最多9个字符?
在java正则表达式中,如何创建一个正则表达式来检测任何以两个连续数字开头的字符串,后跟最多九个带连字符的连续字符?例如:Java 正则表达式模式来检测两个连续的数字,后跟最多9个字符?,java,regex,Java,Regex,在java正则表达式中,如何创建一个正则表达式来检测任何以两个连续数字开头的字符串,后跟最多九个带连字符的连续字符?例如: nnccccccccc-nnccccccccc 或 或 其中,n表示从0到1的数字,c表示字母字符 到目前为止,我试过这样做:。我认为“nn”和没有一个字母字符是可以接受的,因此,对于单个序列: [0,1]{2}\D{0,9} 解释: [0,1]{2}-->只接受0和1作为正好两次的数字 \D{0,9}-->接受0到9的通用编号 编辑:你说 其中n表示从0到1的数字 但
nnccccccccc-nnccccccccc
或
或
其中,n
表示从0到1的数字,c
表示字母字符
到目前为止,我试过这样做:。我认为“nn”和没有一个字母字符是可以接受的,因此,对于单个序列:
[0,1]{2}\D{0,9}
解释:
[0,1]{2}
-->只接受0和1作为正好两次的数字
\D{0,9}
-->接受0到9的通用编号
编辑:你说
其中n表示从0到1的数字
但如果接受了22 may
,则需要0到9之间的数字,因此必须使用\d
\d{2}\D{0,9}
您可以使用^(\d{2}[a-zA-Z]{0,9})-(\d{2}[a-zA-Z]{0,9})$
示例:
这将匹配如下所述的字符串:
2
小数0-9
字符-
2
再次小数0-9
字符您可以使用此正则表达式进行匹配:
^\d{1,2}[a-zA-Z]{1,9}-\d{1,2}[a-zA-Z]{1,9}$
如果您使用的是.matches()
方法,则不需要^
和$
:匹配1或2位数字\d{1,2}
:匹配1到9个英文字母[a-zA-Z]{1,9}
:匹配文字连字符-
[0-1]{2}+[a-z]{9}+- 您提到其中
n
表示从0到1的数字,但是您想要匹配的似乎表示从0到9的数字。哪一个是正确的?正则表达式是必须的吗?如果不是,我宁愿尝试解析日期。。。如果有2月30日的假期,你会怎么办?还是60年?再看一遍你的问题。。。被接受的答案怎么可能是你问题的答案?;-)2个连续数字,后跟最多9个带连字符的字符。。。连续数字必须为0或1。。。。并不是说我批评了答案。。。我宁愿批评这个问题……这也将符合01april-01april-
。检查是否正确。
\d{2}\D{0,9}
^\d{1,2}[a-zA-Z]{1,9}-\d{1,2}[a-zA-Z]{1,9}$