Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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,我试图检查字符串是否包含非数字字符。 e、 g.:“4012-8888-8888-1881”或“4012-8888-1881” 这是我的密码。。。对于上述字符串,它返回false public static boolean containsNonNumericCharacters(String rawInput) { Pattern p = Pattern.compile("(\\D+)"); Matcher m = p.matcher(rawInput); return m.mat

我试图检查字符串是否包含非数字字符。 e、 g.:“4012-8888-8888-1881”或“4012-8888-1881”

这是我的密码。。。对于上述字符串,它返回false

public static boolean containsNonNumericCharacters(String rawInput) {
  Pattern p = Pattern.compile("(\\D+)");
  Matcher m = p.matcher(rawInput);
  return m.matches();
}

我做错了什么?

这试图通过模式匹配您的整个输入。只有当所有字符都是非数字时,才会返回
true

您可以改为使用模式
“(\\d+)”
并返回
!m、 matches()

使用
find()
而不是
matches()

试试这个

public static boolean containsNonNumericCharacters(String rawInput) {
          Pattern p = Pattern.compile("-?\\d+(.\\d+)?");
          Matcher m = p.matcher(rawInput);
          return !m.matches();
        }

我很确定OP是想匹配数字串,而不是实际的数字。这些样本在我看来就像信用卡号码。
public static boolean containsNonNumericCharacters(String rawInput) {
          Pattern p = Pattern.compile("-?\\d+(.\\d+)?");
          Matcher m = p.matcher(rawInput);
          return !m.matches();
        }