我正在尝试使用:regexp-me lib编写验证类,因为这是post的答案。
我做了什么
String id = "123456789";
String pattern = "\\d{7,8}";
public boolean validate(String id,String pattern){
RE regular_expresion = new RE("\\d{7,8}");
return regular_expresion.match(id);
}
此代码应返回false,其中包含" id"因为模式应该接受7到8位数。但是,如果我使用id =" 1234567"它返回true,代码接受7位或更多位数。
{m,n}正在作为{n,}。
以前是否有人遇到此问题?
答案 0 :(得分:2)
表达式\\d{7,8}
表示:
这适用于1234567
,因为这是一个7位数的字符串以及123456789
的字符串,因为此字符串也包含7或8位数的字符串。
将表达式更改为^\\d{7,8}$
只有当从头到尾的整个字符串仅由数字组成且字符串长度为7或8时才能获得正结果。