Java 数组replaceAll()错误

Java 数组replaceAll()错误,java,regex,Java,Regex,我想知道我的正则表达式出了什么问题。我试图用这段代码删除字符串中的某些字符 array[i] = array[i].replaceAll("[.,;:?!\"')\\(]",""); 除\字符外,其他所有字符都正常工作,它未从字符串中删除。我也试过这个代码 array[i] = array[i].replaceAll("[.,;:?!\"')(\\]",""); 这给了我一个错误 我做错了什么?请尝试以下正则表达式: array[i] = array[i].replaceAll("[.,;:

我想知道我的正则表达式出了什么问题。我试图用这段代码删除字符串中的某些字符

array[i] = array[i].replaceAll("[.,;:?!\"')\\(]","");
除\字符外,其他所有字符都正常工作,它未从字符串中删除。我也试过这个代码

array[i] = array[i].replaceAll("[.,;:?!\"')(\\]","");
这给了我一个错误


我做错了什么?

请尝试以下正则表达式:

array[i] = array[i].replaceAll("[.,;:?!\\\\\"')(]","");
要匹配java中的单个
\
,需要对每个反斜杠使用
\
。您总共需要四个才能匹配
\\
\
。希望这不会让你感到困惑。这将符合:

What is is | What Java thinks it is | What is actually is
,          | ,                      | ,
;          | ;                      | ;
:          | :                      | :
?          | ?                      | ?
!          | !                      | !
\\\\       | \\                     | \
\"         | "                      | "
'          | '                      | '
)          | )                      | )
(          | (                      | (

正如您在上图中看到的,它可能会与Java正则表达式中的所有反斜杠混淆,我真的不知道更好的解决方案,只能将它们计算出来(这个与那个匹配,这个与那个匹配,等等)。

试试:
array[I]=array[I].replaceAll([,;:?!\\\\”)(\],“”);
还是不行bro@newbie错误是什么?@不应该给出错误的新手,错误是什么?根据他的建议,没有错误,但仍然不会删除我最初提议的\@AvinashRaj约3分钟,没有问题上述评论中的解决方案不会起作用。@AvinashRaj最初提议。我认为他不想匹配
\
首先;)