2014-06-20 34 views
0

嗨,我试图写一个验证类,使用:regexp-me lib,因为这个post的答案。如何在黑莓({m,n})上使用量词正则表达式模式

我做了什么

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,}工作。

有人有过这个问题吗?

回答

2

表达\\d{7,8}手段:

  • 找到字符串
  • 内的任何地方仅由数字
  • 与至少7个,但不大于8个字符的字符串。

这是1234567真,因为这是7位的字符串以及用于123456789因为还此字符串包含具有7或8个数字的字符串。

更改表达式^\\d{7,8}$得到一个肯定的结果,只有当从开始到结束的整个字符串仅由数字和字符串长度是7或8。

+0

哇因此该方法返回真实的,即使它具有具有该模式的子字符串。我不好谢谢你,莫菲。 – AmirG