gpt4 book ai didi

java - 在 Java .replaceAll 方法中转义一长串元字符

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

我已经尝试解决这个问题有一段时间了,我正在使用 .replaceAll 删除字符串中非字母或数字的任何字符。我尝试使用 Pattern.quote(),但无法使其正常工作。然后我尝试使用\Q 和\E,但它仍然不起作用,即使我在不​​同数量的反斜杠上进行了失败的尝试。这是我第一次尝试以这种方式逃脱,因此我们将不胜感激。

这是有问题的行:

return input.toLowerCase().replaceAll("\\Q !"#$%&'()*+,-./:;<=>?@[]\^_`~{}|\\E","");

最佳答案

这里的一个简单修复是将所有特殊字符放入字符类中:

String input = "abc%#$123";
input = input.toLowerCase().replaceAll("[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`~{}|]","");
System.out.println(input);

abc123

字符类承认大多数特殊字符为未转义文字。异常(exception)情况是双引号、反斜杠和左/右方括号,但它们仍然需要转义。

Demo

注意:删除任何非字母数字的内容可能会更容易,例如

input = input.replaceAll("[^A-Za-z0-9]", "");

但也许有些字符是上面排除的,但你确实想保留。

关于java - 在 Java .replaceAll 方法中转义一长串元字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49105142/

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