Страницы

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

воскресенье, 16 февраля 2020 г.

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

#java #регулярные_выражения #парсер


Есть текстовый файл, кторый я хочу распарсить, а именно считать строку с данными
но исключив из неё несколько элементов.

Примеры строк:

бла-бла-бла 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})?)$")


Но подозреваю, что делаю не правильно.
Прошу помочь примером.
    


Ответы

Ответ 1



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

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

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