Java 带“的数字的指定格式的正则表达式”-&引用;象征
我有一个文本框,只接受以下四种格式的数字(12个字符)Java 带“的数字的指定格式的正则表达式”-&引用;象征,java,regex,validation,Java,Regex,Validation,我有一个文本框,只接受以下四种格式的数字(12个字符) 12345-1234-12 1234-1234-12 12345-123-12 12345-1234-1 我试过这个正则表达式 "(\\d{4,5}-\\d{3,4}-\\d{1,2})" 但它也接受下面的格式,这不是我的要求,我不想下面的格式接受 1234-123-1 1234-1234-1 建议我其他正则表达式是否有效?使用正向查找,您还可以检查其他约束。例如 ^(\d{4,5}-\d{3,4}-\d{1,2})(?<=
12345-1234-12
1234-1234-12
12345-123-12
12345-1234-1
我试过这个正则表达式
"(\\d{4,5}-\\d{3,4}-\\d{1,2})"
但它也接受下面的格式,这不是我的要求,我不想下面的格式接受
1234-123-1
1234-1234-1
建议我其他正则表达式是否有效?使用正向查找,您还可以检查其他约束。例如
^(\d{4,5}-\d{3,4}-\d{1,2})(?<=^.{12})
如果一个包含13个字符的字符串也应该匹配,则可以将lookback更改为
(?定义“无运气”.发生了什么?你是如何使用的?它接受1234-123-1 1234-1234-1这也不是我的要求为什么匹配其他字符串也是错误的?我不明白为什么它们不匹配…你很可能在寻找锚:你的要求是什么?1234-123-1
和1234-1234-1
都是matc他和你的正则表达式在一起。试试看
Pattern p = Pattern.compile("^(\\d{4,5}-\\d{3,4}-\\d{1,2})(?<=^.{12})");
for (String s : new String[]{"12345-1234-12",
"1234-1234-12",
"12345-123-12",
"12345-1234-1",
"1234-123-1",
"1234-1234-1"
}) {
System.out.println(s);
System.out.println(p.matcher(s).matches());
}
12345-1234-12
false
1234-1234-12
true
12345-123-12
true
12345-1234-1
true
1234-123-1
false
1234-1234-1
false