Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Java 检查字符串是否包含正则表达式匹配项_Java_Regex - Fatal编程技术网

Java 检查字符串是否包含正则表达式匹配项

Java 检查字符串是否包含正则表达式匹配项,java,regex,Java,Regex,我要检查的是,是否有一个数字后跟空格和另一个数字,字符串中的任何位置,中间没有任何“,” 目前我正在这样做: Pattern pattern = Pattern.compile("[0-9][\" \"]+[0-9]"); Matcher matcher = pattern.matcher(input); if(matcher.find()) return false; 而且效果很好。但我想知道是否还有其他更简单的方法来实现这一点?因为这是一项作业,我不会写出代码,但另一种解决方案是: 拆分

我要检查的是,是否有一个数字后跟空格和另一个数字,
字符串中的任何位置,中间没有任何
“,”

目前我正在这样做:

Pattern pattern = Pattern.compile("[0-9][\" \"]+[0-9]");
Matcher matcher = pattern.matcher(input);
if(matcher.find()) return false;

而且效果很好。但我想知道是否还有其他更简单的方法来实现这一点?

因为这是一项作业,我不会写出代码,但另一种解决方案是:

  • 拆分
    标记上的字符串(使用
    string.Split()
  • 对于生成的拆分数组的每个成员:
    • 修剪成员的前导和尾随空格
    • 如果修剪后的成员是整数(我将让您了解如何确定):
      • 它不符合您指定的标准
    • 其他:
      • 令牌可能满足您的条件(包含多个整数和空格,但不包含逗号)。有几种方法可以确定这一点:在
        ”上拆分;在
        循环时使用
        ,或者其他方法。我会让您弄清楚

    • 您的解决方案足够好,您可以通过以下积极方式尝试

      Pattern pattern = Pattern.compile("^[1-9](,[1-9])*$");
      Matcher matcher = pattern.matcher(input);
      if(matcher.matches()) return true;
      

      不,在这种情况下,
      split[0]
      将是
      12
      (空间将被保留),这当然不是整数。啊,我想我只是想检查每个令牌是否是整数,但您正在寻找两个或多个整数没有正确分开的情况。我更新了我的答案,这应该足以让您开始。