删除正则表达式中的文字字符

She*_*ari 5 java regex

我有以下字符串

\Qpipe,name=office1\E

我正在使用一个不支持\Q和的简化正则表达式库\E.

我试着删除它们

 s.replaceAll("\\Q", "").replaceAll("\\E", "")
Run Code Online (Sandbox Code Playgroud)

但是,我得到了错误 Caused by: java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 1 \E ^

有任何想法吗?

cod*_*ict 14

\是Java字符串和正则表达式引擎中的特殊转义字符.要将文字传递\给正则表达式引擎,您需要\\\\在Java字符串中.所以尝试:

s.replaceAll("\\\\Q", "").replaceAll("\\\\E", "")
Run Code Online (Sandbox Code Playgroud)

或者,更简单的方法是使用replace带字符串而不是正则表达式的方法:

s.replace("\\Q", "").replace("\\E", "")
Run Code Online (Sandbox Code Playgroud)