我试图为带有填充空格的数字编写正则表达式。总长度为四。 例如:
( 1)
( 43)
( 232)
(1239)
我目前正在做的是列出所有四个案例并将它们与" |
"合并。应该有更好的方法来做到这一点。
也许{min, max}
可以胜任这项工作?
任何人都可以提供一些帮助吗?
编辑:
在你们的帮助下,我现在就明白了。它是^(?= *\d*$)[\d ]{4}$
非常感谢!
答案 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) {
如果您的字符串与正则表达式匹配,并且第一组的长度加上第二组的长度等于实际长度则打印匹配,否则不匹配