Android正则表达式

时间:2015-07-08 10:05:10

标签: android regex

我经常搜索一些对我有用的正则表达式或模式,但我还没找到。

在编辑文本中,我想允许前4个数字,然后是2个大写字母,所以我创建了一个模式:

private final Pattern sPattern  = Pattern.compile("^[0-9]{0,4}[A-Z]{0,2}");

但它也允许前2个大写字母。

如果我将模式更改为

private final Pattern sPattern  = Pattern.compile("^[0-9]{0,4}[A-Z]{4,6}"); 

我无法得到任何好的东西。

请帮助我。

感谢。

1 个答案:

答案 0 :(得分:1)

你需要小心限制量词。只需删除0,,因为它允许少于4位或2个大写字母:

^[0-9]{4}[A-Z]{2}

这将需要开头4位数字和后面2位数字。

请参阅demo

对于实时验证,您可以使用

^[0-9]{0,4}(?:(?<=[0-9]{4})[A-Z]{0,2})?

只有前面有4位数字时,才允许用户输入0到4位数,然后输入0到2个英文大写字母。请注意,如果输入只包含最多6个字符,则可以在末尾添加$字符串结尾锚点。