I would like to read a content String from file lne by line, and in each line remove all caharcters that are not one of the following [ { } ]
I wanted to used a method:
line = line.replaceAll("[^[({})]]","");
but the problem is that char [ and ] means in regex syntax something else.
How to deal with it?
Best regards
In Java, the regex character classes can have unions and intersections, thus, [ and ] must be escaped inside if you want them to be treated as literal symbols. And since \ can be used to define escape sequences, it should be doubled to denote a literal regex-escaping \.
Use
line = line.replaceAll("[^\\[({})\\]]","");
^^ ^^
来源:https://stackoverflow.com/questions/34912455/adding-square-brackets-to-character-class-in-java-regex