Внутри [
... ]
вам не нужно экранировать персонажей.Например, [.]
в любом случае не имеет смысла!
Исключениями из этого правила являются
]
, поскольку оно преждевременно закроет все выражение [...]
. ^
если это первый символ, поскольку [^abc]
соответствует всему , за исключением abc
. -
, если это не первый / последний символ, поскольку [a-z]
соответствует всем символам от a
до z
.
Таким образом, вы можете написать
str.replaceAll("[-!?.,;:\"']", "")
Чтобы заключить строку в регулярное выражение, вы также можете использоватьPattern.quote
, который при необходимости экранирует символы в строке.
Демонстрация:
String str = "abc-!?.,;:\"'def";
System.out.println(str.replaceAll("[-!?.,;:\"']", "")); // prints abcdef