#java #regex #string
#java #регулярное выражение #строка
Вопрос:
У меня есть следующая строка, и я хочу экранировать обратную косую черту только в двойных кавычках. Я пытался сделать это,
String s = "Hellona = a.split("n")";
String tem = s.replaceAll("(?<=")[^\\](?=")", "\\");
Но я получаю следующий вывод,
# output
Hello
a = a.split("")
Я хочу, чтобы это было,
Hello
a = a.split("n")
Есть идеи по этому поводу?
Комментарии:
1. Не говорю, что это невозможно, но, как правило, регулярное выражение не является подходящим инструментом для синтаксического анализа кода.
Ответ №1:
Сделайте это простым:
Предполагая обратную косую черту и двойные кавычки, всегда предшествующие символу n
public static void main(String[] args) {
String s = "Hellona = a.split("n")";
String tem = s.replaceAll("\"\n\"", "\"\\n\"");
System.out.println(tem);
}