我可以在contains方法中使用正则表达式吗?

时间:2012-12-26 07:48:47

标签: java regex string

这是我的代码

public class regMatch {

    public static void main(String... args)
    {
        String s = "1";
        System.out.println(s.contains("/[0-9]/"));
    }
}

它的印刷错误;

我想在contains方法中使用正则表达式。

我该如何使用它。

4 个答案:

答案 0 :(得分:7)

  

我想在contains方法中使用正则表达式。

     

我该如何使用

您可以contains方法

中使用正则表达式

答案 1 :(得分:3)

您不需要(也不应该使用)Java正则表达式中的分隔符

contains()方法不支持正则表达式。你需要一个正则表达式对象:

Pattern regex = Pattern.compile("[0-9]");
Matcher regexMatcher = regex.matcher(s);
System.out.println(regexMatcher.find());

答案 2 :(得分:1)

您可以使用Pattern类来测试正则表达式匹配。但是,如果您只是测试字符串中是否存在数字,那么直接测试它将比使用正则表达式更有效。

答案 3 :(得分:1)

您可以将matches()与正则表达式.*[0-9].*一起使用来查找是否有任何数字:

System.out.println(s.matches(".*[0-9].*"));

(或对于多行字符串,请改用正则表达式(.|\\s)*[0-9](.|\\s)*

另一种选择 - 如果你渴望使用contains(),则迭代所有字符,从0到9,并检查每个字符是否包含它:

    boolean flag = false;
    for (int i = 0; i < 10; i++) 
        flag |= s.contains("" + i);
     System.out.println(flag);