gpt4 book ai didi

java - 不要将 String 读作正则表达式,而是按原样阅读

转载 作者:行者123 更新时间:2023-11-29 07:51:27 24 4
gpt4 key购买 nike

基本上我使用下面的代码

message.replaceFirst(cmd, "");

这很好,但是有时 cmd 的值是“\”,这会导致问题,因为它试图将其读取为正则表达式并给出以下错误

Caused by: java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
at java.util.regex.Pattern.error(Unknown Source) ~[?:1.7.0_45]
at java.util.regex.Pattern.compile(Unknown Source) ~[?:1.7.0_45]
at java.util.regex.Pattern.<init>(Unknown Source) ~[?:1.7.0_45]
at java.util.regex.Pattern.compile(Unknown Source) ~[?:1.7.0_45]
at java.lang.String.replaceFirst(Unknown Source) ~[?:1.7.0_45]

基本上我想知道是否有办法让它按原样阅读,而无需尝试将其用作正则表达式。

提前致谢

最佳答案

你必须使用 Pattern#quote因为 \ 是 RegEx 中的特殊字符。

message.replaceFirst(Pattern.quote(cmd), "");

你也可能在替换字符串中遇到同样的问题,在这种情况下使用 Matcher#quoteReplacement .

关于java - 不要将 String 读作正则表达式,而是按原样阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20807667/

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