Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 检查部分文本是否与正则表达式匹配_Android_Regex - Fatal编程技术网

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

Android 检查部分文本是否与正则表达式匹配,android,regex,Android,Regex,我正在尝试构建一个类似于Google Play信用卡的组件,添加: 当用户开始键入信用卡号时,只有保持可见的信用卡图像是与部分信用卡号模式匹配的卡的图像 例如: 查看MasterCard正则表达式:^5[1-5][0-9]{14}$ 如果用户键入“5”、“53”、“531”,则主卡的图像应可见 我想它可以通过Pattern和Matcher类来实现,但是如何实现呢 使用match()方法是不好的,因为它试图匹配所有模式 提前谢谢 如果您想要实时验证的模式,可以使用 ^5([1-5][0-9]{0

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

当用户开始键入信用卡号时,只有保持可见的信用卡图像是与部分信用卡号模式匹配的卡的图像

例如:

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

如果用户键入“5”、“53”、“531”,则主卡的图像应可见

我想它可以通过Pattern和Matcher类来实现,但是如何实现呢

使用
match()
方法是不好的,因为它试图匹配所有模式


提前谢谢

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

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

注意:您不能将其用于最终字符串验证,您必须使用当前的正则表达式进行验证

用于实时输入验证的正则表达式的主要特点是,它只允许在前一个字符匹配的情况下使用下一个字符,这在嵌套可选组中是可能的。由于您只有3个部分:1)第一个必须的
5
,然后是
1
5
数字,然后是任何0到14个数字,您可以在
[1-5][0-9]{0,14}
模式周围使用一个可选组,并确保允许零或最多14个其他数字

详情:

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

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

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

注意:您不能将其用于最终字符串验证,您必须使用当前的正则表达式进行验证

用于实时输入验证的正则表达式的主要特点是,它只允许在前一个字符匹配的情况下使用下一个字符,这在嵌套可选组中是可能的。由于您只有3个部分:1)第一个必须的
5
,然后是
1
5
数字,然后是任何0到14个数字,您可以在
[1-5][0-9]{0,14}
模式周围使用一个可选组,并确保允许零或最多14个其他数字

详情:

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

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

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

使用您的模式激活按钮
并将其用于图像

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

尝试
^5([1-5][0-9]{0,14})$
尝试
^5([1-5][0-9]{0,14})$
^5[1-5][0-9]{0,14}$
将不允许
5
,因为
[1-5]
是强制性的。它还有一个格式错误的限制(限制/范围)量词。此
^5[1-5][0-9]{0,14}$
将不允许
5
,因为
[1-5]
是必需的。它还有一个格式错误的限制(界限/范围)量词。