#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)
— не удается выполнить сопоставление, если перед текущим местоположением есть цифра.
— соответствует буквальному.