-5

这是我的代码

public class regMatch {

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

其印刷错误;

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

我该如何使用它。

4

4 回答 4

8

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

我该如何使用它

不能contains在方法中使用正则表达式

于 2012-12-26T07:53:19.333 回答
3

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

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

Pattern regex = Pattern.compile("[0-9]");
Matcher regexMatcher = regex.matcher(s);
System.out.println(regexMatcher.find());
于 2012-12-26T07:53:33.030 回答
1

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

于 2012-12-26T07:53:11.700 回答
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);
于 2012-12-26T07:54:56.747 回答