[英]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.