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最初提议。我认为他不想匹配\
首先;)