Есть текстовый файл, кторый я хочу распарсить, а именно считать строку с данными но исключив из неё несколько элементов.
Примеры строк:
бла-бла-бла 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
Комментариев нет:
Отправить комментарий