用户输入为正则不起作用



当我使用以下代码时,它有效:

String input = "8:32:03";
String filter = "(\d{1,2}):(\d{2})";
Pattern p = Pattern.compile(filter);
Matcher m = p.matcher(input);
if(m.find()) {  //Enters the condition.
    System.out.println("Found => " + m.group() );
}

但是,当我尝试将用户输入作为正则表达式时,它行不通吗?

String input = "8:32:03";
Scanner reader = new Scanner(System.in);
String filter = reader.nextLine();
Pattern p = Pattern.compile(filter);
Matcher m = p.matcher(input);
if(m.find()) {  //Does not enter the condition.
    System.out.println("Found => " + m.group() );
}

我尝试使用Pattern p = Pattern.compile(Pattern.quote(filter));
但这也行不通。
我如何将用户输入作为有效的正则表达式?

我在这里做一个假设..您是否输入(\d{1,2}):(\d{2})

如果是这样,您的示例中的\充当的逃生。因此,要使您的输入相同,您将需要:(d{1,2}):(d{2})

相关内容

最新更新