这是我的代码
public class regMatch {
public static void main(String... args)
{
String s = "1";
System.out.println(s.contains("/[0-9]/"));
}
}
它的印刷错误;
我想在contains
方法中使用正则表达式。
我该如何使用它。
答案 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);