Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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 Regex只验证零_Java_Regex - Fatal编程技术网

Java Regex只验证零

Java Regex只验证零,java,regex,Java,Regex,我试图找到只验证零的正则表达式“0”、“00”、“000”… import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestRegExp { public static String REG_EXP_ONLY_ZEROS = "(0)+"; public static void main(String[] args)

我试图找到只验证零的正则表达式“0”、“00”、“000”…

import java.util.regex.Matcher;
import java.util.regex.Pattern;

    public class TestRegExp {
    
        public static String REG_EXP_ONLY_ZEROS = "(0)+";
    
        public static void main(String[] args) {
            Pattern pat = Pattern.compile("0");
            Matcher mat = pat.matcher(REG_EXP_ONLY_ZEROS);
            if (mat.matches()) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
        }
    
    }
几次失败的尝试:“0+,“0{1,}”…

import java.util.regex.Matcher;
import java.util.regex.Pattern;

    public class TestRegExp {
    
        public static String REG_EXP_ONLY_ZEROS = "(0)+";
    
        public static void main(String[] args) {
            Pattern pat = Pattern.compile("0");
            Matcher mat = pat.matcher(REG_EXP_ONLY_ZEROS);
            if (mat.matches()) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
        }
    
    }

您似乎混淆了模式和要验证的输入

公共类TestRegExp{
公共静态字符串REG_EXP_ONLY_ZEROS=“0+”;
公共静态void main(字符串[]args){
Pattern pat=Pattern.compile(仅限REG_EXP__零);
字符串[]输入={“0”、“0banana”、“00”、“000”、“banana0”、“0”);
for(字符串输入:输入)
{
匹配器垫=匹配器(输入);
if(mat.matches())
{
System.out.println(“是”);
}
其他的
{
系统输出打印项次(“否”);
}
}
}
}
其输出:

YES
NO
YES
YES
NO
NO

使用
String.matches
时,您还需要添加起始(
^
)和结束(
$
)指示符(使您的模式
^0+$
),但对于
Matcher.matches
情况并非如此。

模式。compile
应使用参数regexAlso,您当前的正则表达式将接受
a0
以及
0a
。使用
^
$
来分隔行的开头和结尾:
^0+$
(如果这是预期的行为)@Phillip在使用
Matcher.matches()时,开始和结束锚定
^
分别<代码>$
不可用needed@Lino我不知道这一点,感谢您澄清,
Matcher.matches()
似乎您是正确的,我将编辑我的答案