Java正则表达式组合长度

时间:2017-05-25 19:27:04

标签: java

我试图为带有填充空格的数字编写正则表达式。总长度为四。 例如:

(   1)
(  43)
( 232)
(1239)

我目前正在做的是列出所有四个案例并将它们与" |"合并。应该有更好的方法来做到这一点。

也许{min, max}可以胜任这项工作? 任何人都可以提供一些帮助吗?

编辑: 在你们的帮助下,我现在就明白了。它是^(?= *\d*$)[\d ]{4}$

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您不能使用此正则表达式,则可以使用模式,例如:

String str = "(  123)";
int paddingLength = 5;
Pattern p = Pattern.compile("\\((\\s*)(\\d*)\\)");
Matcher m = p.matcher(str);

if (m.find() && m.group(1).length() + m.group(2).length() == paddingLength) {
    System.out.println("Match");
} else {
    System.out.println("Not Match");
}

或者像@Mad Physicist在评论中提到的那样你可以使用:

if (m.find() && m.group(0).length() - 2 == paddingLength) {

如果您的字符串与正则表达式匹配,并且第一组的长度加上第二组的长度等于实际长度则打印匹配,否则不匹配