Избежать одиночной обратной косой черты \ с двумя - PullRequest
0 голосов
/ 06 марта 2019

У меня есть следующая строка, и я хочу экранировать только между двойными кавычками. Я пытался сделать это,

String s = "Hello\na = a.split(\"\n\")";
String tem = s.replaceAll("(?<=\")[^\\\\](?=\")", "\\\\");

Но я получаю следующий вывод,

# output
Hello
a = a.split("\")

Я хочу, чтобы это было,

Hello
a = a.split("\n")

Есть идеи по этому поводу?

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Упростите это:

Предполагая обратную косую черту и двойные кавычки, всегда предшествующие \ n символу

public static void main(String[] args) {
    String s = "Hello\na = a.split(\"\n\")";
    String tem = s.replaceAll("\\\"\\n\\\"", "\\\"\\\\n\\\"");
    System.out.println(tem);
}
0 голосов
/ 06 марта 2019

Как насчет чего-нибудь попроще?

String s = "Hello\na = a.split(\"\n\")";
String tem = s.replaceAll("(\\)(?=\")", "\\\\");    

Вы можете попробовать здесь или здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...