gpt4 book ai didi

java - 用户输入作为正则表达式在 JAVA 中不起作用

转载 作者:行者123 更新时间:2023-12-02 02:37:20 25 4
gpt4 key购买 nike

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

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

关于java - 用户输入作为正则表达式在 JAVA 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46093412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com