Заменить шаблон регулярного выражения

#regex #string

Вопрос:

Мне нужно найти шаблон в строке Java и заменить его на другую строку.

У меня есть два вида струн

1- Lorem ipsum dolor sit amet, it. Integer pos laciniA. 2. Lorem ipsum dolorelit. Curabitur pretium maL.

Что мне нужно сделать, так это найти».», перед которым нет номера, и заменить на «;»

Я нашел регулярное выражение, чтобы сделать это, как str.Замените все(‘.’, ‘\;’);

Проблема с этой скороговоркой заключается в том, что, когда она находит строку «2». она меняется на «2;»

Другое решение-str.replaceAll(‘[a-zAz].’, ‘\;’); но он заменяет последнюю букву перед «.».

Кто-нибудь может помочь-мне с этим?

Комментарии:

1. Ты хочешь сказать, что тебе это нужно str.replaceAll("(?<!\d)\.", ";") ?

Ответ №1:

Что мне нужно сделать, так это найти».», перед которым нет номера, и заменить на «;»

Вы можете использовать негативный взгляд сзади:

 String result = str.replaceAll("(?<!\d)\.", ";");
 

Смотрите демонстрацию регулярных выражений

Подробные сведения:

  • (?<!d) — не удается выполнить сопоставление, если перед текущим местоположением есть цифра
  • . — соответствует буквальному .