Страницы

Поиск по вопросам

пятница, 26 апреля 2019 г.

java. Необходимо исключить из строки элемент вида 123 123 321,09

Есть текстовый файл, кторый я хочу распарсить, а именно считать строку с данными но исключив из неё несколько элементов.
Примеры строк:
бла-бла-бла 12312312 бла-бла-бла-бла983-бла {1} {12 000 123,09} бла-бла-бла 123123123123 {3} {020 123,09} бла-бла-бла 12312312934393123 бла93-бла0-бла {123,09}
необходимо при считывании строки избавиться от чисел в фигурных скобках. Если что поставил фигурные скобки для выделения, по факту их нет. Как их исключить? Пробовал сплитовать регулярными выражениями что то типа:
String b = "строки"; String[] a = b.trim().split("^(?!0.*$)([0-9]{1,3}( [0-9]{3})?( [0-9]{3})?( [0-9]{3})?(,[0-9]{2})?)$")
Но подозреваю, что делаю не правильно. Прошу помочь примером.


Ответ

Попробуйте регулярное выражение (?:[\s,]\d{1,3})+$
b.replace("(?:[\\s,]\\d{1,3})+$", "");
Давайте разберёмся, что происходит:
(?: // Выделяем группу для повтора, но без захвата [\s,] // Пробельный символ или запятая \d{1,3} // От одной до трёх цифр )+ // Эта комбинация может повторяться $ // Всё это только в конце строки
Regex101.com

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

Отправить комментарий