java - 正则表达式:从前一组匹配的出现次数中获取要匹配的出现次数

标签 java regex

我有以下正则表达式

\d{2,4}\-\d{6,8}

但是当连字符之前匹配 4 位数字时,是否可以只匹配连字符之后的 6 位数字。即,我只想匹配以下情况:

XX-XXXXXXXX
XXX-XXXXXXX
XXXX-XXXXXX

其中 X 是数字。

最佳答案

您可以做的是验证总长度以及各个部分的长度:

^(?=[\d-]{11}$)\d{2,4}-\d{6,8}$

然而,在这种情况下,列出 3 个替代方案似乎更简单,正如 Wiktor Stribiżew 所评论的那样。 :

^(?:\d{2}-\d{8}|\d{3}-\d{7}|\d{4}-\d{6})$

关于java - 正则表达式:从前一组匹配的出现次数中获取要匹配的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45462652/

相关文章:

java - 有没有更好(更快)的方法将数字除以数字?

java - 如何从java数据集中计算拟合优度(GOF)?

ruby - 如何将科学计数法字符串转换为十进制计数法?

.net - 支持惰性求值的 .Net 正则表达式库

javascript - 正则表达式:查找特定字符串,只要它出现在另一个特定字符串之前

jquery - 修复 RegEx 中的 JSLint 擒纵机构不良警告

java - 如何通过电子邮件通过撇号进行验证并使用正则表达式限制 @ 符号后的点数。 (JAVA)

java - Android Realm : Many to Many Relationship

java - Spring启动与Spring安全错误: There was an unexpected error (type=Forbidden,状态= 403)

java - 使用有界通配符推断类型的问题