检查部分文本是否与正则表达式匹配

时间:2016-08-17 18:58:26

标签: android regex

我正在尝试构建类似于Google Play的信用卡添加的组件:

demo

如果用户开始输入信用卡号码,并且只有信用卡图片保持可见,则这些卡片与信用卡号码模式的一部分相符。

例如:

查看万事达卡正则表达式:^ 5 [1-5] [0-9] {14} $

如果用户键入" 5"," 53"," 531",则应显示主卡的图像。

我想可以用Pattern和Matcher类完成,但是怎么做?

使用Series.query方法并不好,因为它试图匹配所有模式。

提前致谢!

2 个答案:

答案 0 :(得分:0)

如果您想要实时验证模式,可以使用

^5([1-5][0-9]{0,14})?$

请参阅regex demo

请注意,您无法将其用于最终字符串验证,您必须使用当前的正则表达式。

关于实时输入验证的正则表达式的主要之处在于它仅在前一个字符匹配时允许下一个字符,并且嵌套可选组可以实现。由于您只有3个部分:1)第一个强制性5,然后是15数字,然后是0到14个数字,您可以只使用一个可选组{{ 1}}模式和确保您允许零或最多14个其他数字。

详细

  • [1-5][0-9]{0,14} - 字符串开头
  • ^ - 强制性5
  • 5 - 可选序列(1或0次出现):
    • ([1-5][0-9]{0,14})? - 从[1-5]1
    • 的数字
    • 5 - 任意零到十四位
  • [0-9]{0,14} - 字符串结束。

答案 1 :(得分:0)

使用您的模式激活按钮
,这用于图像

 ^5[1-5][0-9]{0, 14}$