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

时间:2017-08-02 13:44:01

标签: java regex

我有以下正则表达式

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

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

XX-XXXXXXXX
XXX-XXXXXXX
XXXX-XXXXXX

其中X是数字。

1 个答案:

答案 0 :(得分:2)

除了单独的部分之外,您可以做的是验证总长度。长度:

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

然而在这种情况下,列出3个备选方案似乎更简单,如Wiktor Stribiżew所评论:

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