繁体   English   中英

正则表达式的用户输入在JAVA中不起作用

[英]User Input as regex not working in JAVA

当我使用以下代码时,它可以工作:

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})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM