我有一个像010000200000, 000000200000, 020000200000
这样的字符串。我想为此创建正则表达式,并想检查前2位数字仅为01,00& 02.其余的数字应仅来自[0-6]。
我不希望此字符串中有任何空格或任何特殊字符。我尝试了一些在线提供的正则表达式,但并没有完全帮助我。
如果有人有任何想法,请帮助。
答案 0 :(得分:5)
这应该根据您的要求解析它们。
java.util.regex.Pattern.matches("0[012][0-6]+", "010000200000");
第一个字符始终为0,后跟1个字符,即0,1或2,后跟0-6范围内的至少1个字符。
答案 1 :(得分:3)
直截了当
"0[012][0-6]*"
从0开始,接下来是0,1或2,以及0到6之间的任何数字位数。
答案 2 :(得分:1)
我建议您查看this tutorial。
如果您的字符串的位数和段数是固定的,您可以使用
(?:0[012][0-6]{10}, ){2}0[012][0-6]{10}
如果不是,只需
(?:0[012][0-6]*, )*0[012][0-6]*
如果您实际上意味着给定的示例是三个单独的字符串,那么它就更容易了:
0[012][0-6]{10}
或
0[012][0-6]*
所有这些用途都是character classes和repetition。
请注意,只有在Pattern.matches
使用它们时才会按照您的喜好行事。如果没有,请用^...$
包围它们,以确保此模式前面或之后没有其他内容。
答案 3 :(得分:0)
java.util.regex.Pattern.matches("0[0-2]{1}[3-6]{10}", "015453356543")
这正是需要正则表达式...是吗?
答案 4 :(得分:-1)
0[0-2][0-6][0-6][0-6][0-6][0-6][0-6][0-6][0-6][0-6][0-6]
怎么样?显然我猜你需要一个12个字符的固定长度字符串,否则0[0-2][0-6]+
就可以了。