Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带“的数字的指定格式的正则表达式”-&引用;象征_Java_Regex_Validation - Fatal编程技术网

Java 带“的数字的指定格式的正则表达式”-&引用;象征

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})(?<=

我有一个文本框,只接受以下四种格式的数字(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})(?<=^.{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