Java 为什么可以';t我将替换为“:)&引用;
我似乎无法将字符串“:”替换为其他内容,以下是我的代码:Java 为什么可以';t我将替换为“:)&引用;,java,regex,string,Java,Regex,String,我似乎无法将字符串“:”替换为其他内容,以下是我的代码: if(message.contains(":)")) message = message.replaceAll(":)", replacement); 这就是错误: Exception in thread "Listen" java.util.regex.PatternSyntaxException: Unmatched closing ')' near index 0 :) ^ 我该怎么办?写: message.replaceAll
if(message.contains(":)")) message = message.replaceAll(":)", replacement);
这就是错误:
Exception in thread "Listen" java.util.regex.PatternSyntaxException: Unmatched closing ')'
near index 0
:)
^
我该怎么办?写:
message.replaceAll(Pattern.quote(":)"), replacement);
接受正则表达式,而不是常规字符串)
在正则表达式中有特殊含义,使用将导致将:)
视为字符串:)
而不是正则表达式
如果您不想使用,则应通过\\
退出)
。请注意,转义正则表达式是由\
完成的,但在Java中,\
被写成\
如果您不喜欢上面提到的任何一个,请使用不接受正则表达式的,这样您就可以了。写:
message.replaceAll(Pattern.quote(":)"), replacement);
接受正则表达式,而不是常规字符串)
在正则表达式中有特殊含义,使用将导致将:)
视为字符串:)
而不是正则表达式
如果您不想使用,则应通过\\
退出)
。请注意,转义正则表达式是由\
完成的,但在Java中,\
被写成\
如果您不喜欢上面提到的任何一个,请使用不接受正则表达式的,您就可以了。不要使用replaceAll()
;要替换文字字符串时使用:
message.replace(":)", replacement)
replaceAll()
处理,其中)
具有特殊含义,因此出现错误。不要使用replaceAll()
;要替换文字字符串时使用:
message.replace(":)", replacement)
replaceAll()
处理,其中)
具有特殊含义,因此出现错误。您必须在regexen中转义)
:
message = message.replaceAll(":\\)", replacement);
这是因为)
具有特殊意义(捕获组),因此您必须“告诉”regex您只需要一个文本)
您必须在regexen中转义)
:
message = message.replaceAll(":\\)", replacement);
这是因为
)
具有特殊的含义(捕获组),所以您必须“告诉”regex您只需要一个文本)
@arshajii修复。谢谢,上帝。。。。给某人纠正错误的机会………@DoorknobofSnow在引用方法/属性(通常在文档中)时,使用
来分隔类名和方法/属性名是一种常见的方法。@ajp15243我知道,但在编辑之前是消息。replaceAll(模式#quote(:)”,replacement)代码>(现已修复)@DoorknobofSnow啊,我明白了,这个问题经过了太多的编辑,我没听清那个lol。@arshajii已修复。谢谢,上帝。。。。给某人纠正错误的机会………@DoorknobofSnow在引用方法/属性(通常在文档中)时,使用
来分隔类名和方法/属性名是一种常见的方法。@ajp15243我知道,但在编辑之前是消息。replaceAll(模式#quote(:)”,replacement)代码>(现已修复)@DoorknobofSnow啊,我明白了,这个问题经过了太多的编辑,我都没听清楚。我讨厌ppl这样做,尤其是当他们错了的时候,我会毫不评论地投反对票!为什么会有人否决这个?非常感谢,这很有效@很高兴我能帮上忙。别忘了。顺便说一句,replace()
函数是由模式类支持的,而不是一个普通的循环追加。+1我讨厌ppl这样做,尤其是当它们出错时,没有注释的向下投票!为什么会有人否决这个?非常感谢,这很有效@很高兴我能帮上忙。别忘了。顺便说一句,replace()
函数由模式类支持,而不是普通的循环追加。