如何在一个方法中逃避java中的一组特殊字符?

mac*_*ers 10 java lucene character

我使用lucene搜索,但lucene有一堆特殊字符可以逃脱:

- && || ! ( ) { } [ ] ^ " ~ * ? : \
Run Code Online (Sandbox Code Playgroud)

我有问题转义这些字符,因为它们太多了,如果我使用String.replaceAll()方法,我最终会有一个很长的代码行只是为了逃避字符.什么是最好的方法?谢谢!

Thi*_*ilo 18

还有一个名为QueryParser#escape的方法,它可能很有用:

返回一个String,其中QueryParser期望转义的那些字符被前面的\转义.