转义 space 并等于字符

Escaping space and equal to character

我正在使用 java 并且具有可以具有多个 space 和等于“=”符号的字符串,如下所示。

String temp = "[name='FPC:CPU']/XM chip/allocate";

此临时字符串将传递给其他一些因 space 和等号而失败的程序。

如何转义 space 和“=”字符?

我想要的原始字符串

[name='FPC:CPU']/XM chip/allocate 

to 

[name\='FPC:CPU']/XM\ chip/allocate  

想知道如何使用 temp.replaceAll

这应该很简单。

System.out.println("foo bar=baz".replaceAll("([ =])" "\\"));

应该打印这个

foo\ bar\=baz

正则表达式中的括号组成一个捕获组,字符class[ =]将捕获空格和等号。

在替换表达式中, 指的是第一个捕获组。唯一有点棘手的是转义反斜杠。

通常,在正则表达式替换中,反斜杠本身就是一个转义字符。所以你需要两个一起插入一个反斜杠,然而反斜杠也是Java字符串中的一个转义符,所以将两个反斜杠放入Java 字符串(形成正则表达式转义),必须插入四个反斜杠。这就是你最终得到 "\\$1".

的方式