#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
Комментариев нет:
Отправить комментарий