如何在黑莓上使用量词正则表达式模式({m,n})

时间:2014-06-20 13:05:08

标签: java regex blackberry blackberry-eclipse-plugin

我正在尝试使用: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,}。

以前是否有人遇到此问题?

1 个答案:

答案 0 :(得分:2)

表达式\\d{7,8}表示:

  • 找到字符串中的任何位置
  • 仅包含数字的字符串
  • 至少7个但不超过8个字符。

这适用于1234567,因为这是一个7位数的字符串以及123456789的字符串,因为此字符串也包含7或8位数的字符串。

将表达式更改为^\\d{7,8}$只有当从头到尾的整个字符串仅由数字组成且字符串长度为7或8时才能获得正结果。