gpt4 book ai didi

Java字符串匹配和replaceAll的区别在于匹配括号

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

我有带括号的字符串和转义字符。我需要匹配这些字符并删除它们。在下面的代码中,我将 matches() 和 ReplaceAll() 与相同的正则表达式一起使用,但 matches() 返回 false,而 ReplaceAll() 似乎匹配得很好,因为 ReplaceAll() 执行并删除了字符。有人可以解释一下吗?

String input = "(aaaa)\\b";

boolean matchResult = input.matches("\\(|\\)|\\\\[a-z]+");
System.out.printf("matchResult=%s\n", matchResult);

String output = input.replaceAll("\\(|\\)|\\\\[a-z]+", "");
System.out.printf("INPUT: %s --> OUTPUT: %s\n", input, output);

打印输出:

matchResult=false
INPUT: (aaaa) --> OUTPUT: aaaa

最佳答案

matches 匹配整个输入,而不是其中的一部分。

正则表达式 \(|\)|\\[a-z]+ 并不描述整个单词,而只描述它的一部分,所以在你的情况下它会失败。

关于Java字符串匹配和replaceAll的区别在于匹配括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10578254/

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