Regex, чтобы игнорировать все символы между номером позиции и количеством - PullRequest
1 голос
/ 25 апреля 2020

Моя строка текста выглядит следующим образом: 1 SE20040021 B18204015560 24-04-2020 AB C LO 500319L 224,55 2 SE20040022 B10204006583 24-04-2020 KAR 170363Y 388.05

Где 1 или 2 в начале из строки = номер позиции (номер позиции предварительно указывается как 1, 2, 3 и т. д. c), где 224,55 или 388,05 = сумма (всегда представлена ​​положительными значениями с двумя десятичными знаками)

I хотел бы регулярное выражение, которое после поиска предварительно определенного номера позиции игнорирует неопределенное количество символов между номером и количеством позиции.

Неуказанное количество символов в строке 1 или 2:

1 SE20040021 B18204015560 24-04-2020 AB C LO 500319L 2 SE20040022 B10204006583 24-04-2020 KAR 170363Y

Возвращаемый результат: Для позиции 1 возвращает только строку 224.55 Для позиции 2 возвращает только строку 388.05

Вот что Я использовал для возврата строки для чисел (^ [0-9] + \ d *. \ D * $), но я не знаю, как сопоставить шаблон с позицией 1 и вернуть строку чисел.

1 Ответ

0 голосов
/ 25 апреля 2020

Чтобы получить оба значения, вы можете использовать 2 группы захвата и сопоставить пробел после первой группы и пробел перед последней группой.

^(\d+) .* (\d+\.\d{2})$

По частям

  • ^ Начало строки
  • (\d+) Захват группа 1 , совпадение с 1+ цифрами
  • .* Совпадение с пробелом, любым символом кроме новой строки 0+ раз и снова пробел
  • (\d+\.\d{2}) Захват группа 2 , совпадение 1+ цифр, точка и 2 цифры
  • $ Конец строки

Regex demo

Затем вы можете использовать, например, замену с использованием 2 групп:

Line Item Number $1 = $2

Обновление

Вы также можете использовать положительный взгляд сзади:

(?<=^1 .* )\d+\.\d{2}

Пояснение

  • (?<= Положительный взгляд сзади, утверждайте, что слева -
    • ^1 Совпадение 1 в начале строки
    • .* Соответствует пробелу, любому символу кроме символа новой строки 0+ и пробелу
  • ) Закрыть взгляд за спиной
  • * 1 060 * Совпадение 1+ цифр, точки и 2 цифр

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...