Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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,我有两条线: 第一个字符串应与此模式匹配:“anyDoubleValue anyDoubleValue anyDoubleValue”。请注意,这些双值之间用空格分隔。我所说的anyDoubleValue是指:任何整数或十进制值 第二个字符串应与此模式匹配:“aSet aSet aSet”。集合“aSet”应该只有-1、0或1。还请注意,这些集合由空格分隔 我尝试了以下方法,但都没有达到目的: if(aString.matches("[\\d\\s\\d\\s\\d]"){//do foo} i

我有两条线:

  • 第一个字符串应与此模式匹配:“anyDoubleValue anyDoubleValue anyDoubleValue”。请注意,这些双值之间用空格分隔。我所说的anyDoubleValue是指:任何整数或十进制值
  • 第二个字符串应与此模式匹配:“aSet aSet aSet”。集合“aSet”应该只有-1、0或1。还请注意,这些集合由空格分隔 我尝试了以下方法,但都没有达到目的:

    if(aString.matches("[\\d\\s\\d\\s\\d]"){//do foo}
    if(anotherString.matches("[0-1\\s0-1\\s0-1]")){// do bar} 
    
    首先:

    "-?[0-9](?:\\.[0-9]+)? -?[0-9](?:\\.[0-9]+)? -?[0-9](?:\\.[0-9]+)?"
    
    第二项:

    "(?:0|-?1) (?:0|-?1) (?:0|-?1)"
    
    首先:

    "-?[0-9](?:\\.[0-9]+)? -?[0-9](?:\\.[0-9]+)? -?[0-9](?:\\.[0-9]+)?"
    
    第二项:

    "(?:0|-?1) (?:0|-?1) (?:0|-?1)"
    
    首先:

    "-?[0-9](?:\\.[0-9]+)? -?[0-9](?:\\.[0-9]+)? -?[0-9](?:\\.[0-9]+)?"
    
    第二项:

    "(?:0|-?1) (?:0|-?1) (?:0|-?1)"
    
    首先:

    "-?[0-9](?:\\.[0-9]+)? -?[0-9](?:\\.[0-9]+)? -?[0-9](?:\\.[0-9]+)?"
    
    第二项:

    "(?:0|-?1) (?:0|-?1) (?:0|-?1)"
    

    对于第一个:

    (?:0|-?1)(\\s(?:0|-?1)){2}
    
    匹配双精度值的模式为-
    “-?\\d+(.\\d+)”
    。好的,这是一个非常普遍的问题。不考虑科学符号。

    因此,要获得双值和空格的序列,请使用:

    // Removed non-captured group for readability purpose
    (-?\\d+(\\.\\d+)?)(?:\\s(-?\\d+(\\.\\d+)?)){2}  
    
    对于第二个:

    (?:0|-?1)(\\s(?:0|-?1)){2}
    

    对于第一个:

    (?:0|-?1)(\\s(?:0|-?1)){2}
    
    匹配双精度值的模式为-
    “-?\\d+(.\\d+)”
    。好的,这是一个非常普遍的问题。不考虑科学符号。

    因此,要获得双值和空格的序列,请使用:

    // Removed non-captured group for readability purpose
    (-?\\d+(\\.\\d+)?)(?:\\s(-?\\d+(\\.\\d+)?)){2}  
    
    对于第二个:

    (?:0|-?1)(\\s(?:0|-?1)){2}
    

    对于第一个:

    (?:0|-?1)(\\s(?:0|-?1)){2}
    
    匹配双精度值的模式为-
    “-?\\d+(.\\d+)”
    。好的,这是一个非常普遍的问题。不考虑科学符号。

    因此,要获得双值和空格的序列,请使用:

    // Removed non-captured group for readability purpose
    (-?\\d+(\\.\\d+)?)(?:\\s(-?\\d+(\\.\\d+)?)){2}  
    
    对于第二个:

    (?:0|-?1)(\\s(?:0|-?1)){2}
    

    对于第一个:

    (?:0|-?1)(\\s(?:0|-?1)){2}
    
    匹配双精度值的模式为-
    “-?\\d+(.\\d+)”
    。好的,这是一个非常普遍的问题。不考虑科学符号。

    因此,要获得双值和空格的序列,请使用:

    // Removed non-captured group for readability purpose
    (-?\\d+(\\.\\d+)?)(?:\\s(-?\\d+(\\.\\d+)?)){2}  
    
    对于第二个:

    (?:0|-?1)(\\s(?:0|-?1)){2}
    

    对于第一个匹配:

    ^(\d+(\.\d+)?)\s(\d+(\.\d+)?)\s(\d+(\.\d+)?)$
    
    ^(\-1|0|1)\s(\-1|0|1)\s(\-1|0|1)$
    
    请注意,它允许有或没有小数部分的双值

    对于第二个匹配:

    ^(\d+(\.\d+)?)\s(\d+(\.\d+)?)\s(\d+(\.\d+)?)$
    
    ^(\-1|0|1)\s(\-1|0|1)\s(\-1|0|1)$
    

    对于第一个匹配:

    ^(\d+(\.\d+)?)\s(\d+(\.\d+)?)\s(\d+(\.\d+)?)$
    
    ^(\-1|0|1)\s(\-1|0|1)\s(\-1|0|1)$
    
    请注意,它允许有或没有小数部分的双值

    对于第二个匹配:

    ^(\d+(\.\d+)?)\s(\d+(\.\d+)?)\s(\d+(\.\d+)?)$
    
    ^(\-1|0|1)\s(\-1|0|1)\s(\-1|0|1)$
    

    对于第一个匹配:

    ^(\d+(\.\d+)?)\s(\d+(\.\d+)?)\s(\d+(\.\d+)?)$
    
    ^(\-1|0|1)\s(\-1|0|1)\s(\-1|0|1)$
    
    请注意,它允许有或没有小数部分的双值

    对于第二个匹配:

    ^(\d+(\.\d+)?)\s(\d+(\.\d+)?)\s(\d+(\.\d+)?)$
    
    ^(\-1|0|1)\s(\-1|0|1)\s(\-1|0|1)$
    

    对于第一个匹配:

    ^(\d+(\.\d+)?)\s(\d+(\.\d+)?)\s(\d+(\.\d+)?)$
    
    ^(\-1|0|1)\s(\-1|0|1)\s(\-1|0|1)$
    
    请注意,它允许有或没有小数部分的双值

    对于第二个匹配:

    ^(\d+(\.\d+)?)\s(\d+(\.\d+)?)\s(\d+(\.\d+)?)$
    
    ^(\-1|0|1)\s(\-1|0|1)\s(\-1|0|1)$
    

    你能定义“双重价值”吗?你的问题措词不当。与其提供占位符,不如提供示例字符串,这样就不会有太多关于您所问问题的歧义。现在,看起来您试图多次匹配文字字符串“anyDoubleValue”,但您的叙述表明您实际上在尝试匹配
    double
    值。我所说的anyDoubleValue是指:任何整数或任何十进制值。@帕尔帕蒂姆。好的,我会尝试改进这个问题。你能定义“双重价值”吗?你的问题措辞很糟糕。与其提供占位符,不如提供示例字符串,这样就不会有太多关于您所问问题的歧义。现在,看起来您试图多次匹配文字字符串“anyDoubleValue”,但您的叙述表明您实际上在尝试匹配
    double
    值。我所说的anyDoubleValue是指:任何整数或任何十进制值。@帕尔帕蒂姆。好的,我会尝试改进这个问题。你能定义“双重价值”吗?你的问题措辞很糟糕。与其提供占位符,不如提供示例字符串,这样就不会有太多关于您所问问题的歧义。现在,看起来您试图多次匹配文字字符串“anyDoubleValue”,但您的叙述表明您实际上在尝试匹配
    double
    值。我所说的anyDoubleValue是指:任何整数或任何十进制值。@帕尔帕蒂姆。好的,我会尝试改进这个问题。你能定义“双重价值”吗?你的问题措辞很糟糕。与其提供占位符,不如提供示例字符串,这样就不会有太多关于您所问问题的歧义。现在,看起来您试图多次匹配文字字符串“anyDoubleValue”,但您的叙述表明您实际上在尝试匹配
    double
    值。我所说的anyDoubleValue是指:任何整数或任何十进制值。@帕尔帕蒂姆。好的,我将尝试改进这个问题。我尝试匹配一个开头和/或结尾有空格的字符串。你能告诉我为什么不匹配吗?请参见以下内容:(\s\d+(\.\d+))\s(-)\d+(\.\d+)\s(-),(\d+(\.\d+)\s(-)\d+(\.\d+))\s(-)(\d+(\.\d+)),(\s\d+(\.\d+)\s(-)\d+(\.\d+)\s(-)\d+(\.\d+)\d+)\s(-)。我试图与开头和/或结尾有空格的字符串匹配。你能告诉我为什么不匹配吗?请参见以下内容:(\s\d+(\.\d+))\s(-)\d+(\.\d+)\s(-),(\d+(\.\d+)\s(-)\d+(\.\d+))\s(-)(\d+(\.\d+)),(\s\d+(\.\d+)\s(-)\d+(\.\d+)\s(-)\d+(\.\d+)\d+)\s(-)。我试图与开头和/或结尾有空格的字符串匹配。你能告诉我为什么不匹配吗?请参见以下内容:(\s\d+(\.\d+))\s(-)\d+(\.\d+)\s(-),(\d+(\.\d+)\s(-)\d+(\.\d+))\s(-)(\d+(\.\d+)),(\s\d+(\.\d+)\s(-)\d+(\.\d+)\s(-)\d+(\.\d+)\d+)\s(-)。我试图与开头和/或结尾有空格的字符串匹配。你能告诉我为什么不匹配吗?请参见以下内容:(\s\d+(\.\d+))\s(-\d+(\.\d+))\s(-\d+(\.\d+)),(-\d+)\s(-\d+)(\.\d+))\s(-\d+(\.\d+)),(\s\d+(\.\d+))\s(-\d+(\.\d+)\d+)\s(-\d+)\d+(\.\d+)\d+)\s(--\d+)。