Скажем, у меня есть эта строка в java:
This a "text". This is inches 30". And another 20\"
Я хочу найти все дюймы (двойные кавычки после числа) и добавить для него второй побег, если этого еще нет.
Поэтому после изменения строка будет выглядеть так: напечатано в консоли:
This is a "text". This is inches 30\". And another 20\"
Поэтому регулярное выражение должно проверять, есть ли число перед двойной кавычкой, и если уже нет escape-символа...
благодарю!!
Попробуйте с Positive Lookbehind
String str="This a \"text\". This is inches 30\". And another 20\\\"";
System.out.println(str.replaceAll("(?<=\\d)\"", "\\\\\""));
вывод:
This a "text". This is inches 30\". And another 20\"
Вот демонстрация онлайн.
Объяснение шаблона:
(?<= look behind to see if there is:
\d digits (0-9)
) end of look-behind
\" '"'
x='This a "text". This is inches 30". And another 20\"'
print re.sub(r"(\d+)(\")",r"\1\\\2",x)
Это в python. Я не знаю точное соответствие для java.
\
после30
.