gpt4 book ai didi

java - 带有 "-"符号的指定数字格式的正则表达式

转载 作者:行者123 更新时间:2023-11-30 02:48:20 25 4
gpt4 key购买 nike

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

检查字符串的部分是否从行首到 (?<=^.{12})正好有 12 个字符。

Java 示例:

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

如果 13 个字符的字符串也应该匹配,则后向查找可以更改为 (?<=^.{12,13}) 。 (这将为第一个输入返回 true。)

关于java - 带有 "-"符号的指定数字格式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39488181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com