Поиск подстроки specfi c с форматом шаблона, имеющим последнее вхождение в необработанном тексте - PullRequest
2 голосов
/ 05 августа 2020

У меня есть строка вроде:

Location: FD130 New York GA Unit Serial Purchase Order Sales Order Make Model Amount Tax Total 12345566 Location: FD130 Roswell GA Unit Serial Purchase Order Sales Order Make Model Amount Tax Total 0130029964 

Когда я пытаюсь использовать регулярное выражение, как получить местоположение указанного серийного номера (34573). Regex: 'Location:(.*)?Unit(.*?)0130029964

Затем он дает всю строку строки с местоположением и заканчивается на 34573.

Ожидаемый результат FD130 New York GA, когда я передаю 0130029964 серийный идентификатор.

Есть ли в python функция для получения первой обратной подстроки location из заданного серийного номера

1 Ответ

1 голос
/ 05 августа 2020

Вы можете сопоставить единицу местоположения с первым вхождением unit, используя подход умеренный жадный токен , чтобы не было перекрестного сопоставления либо location: unit, или format.

Затем необязательно сопоставить format и сопоставить до указанного c числа без пересечения сопоставления location: снова.

\blocation:\s*((?:(?!location:|unit|format).)+) (?:format )?unit (?:(?!location:).)+\b12345566\b

Regex demo

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