regex #invoice2data
#регулярное выражение #invoice2data
Вопрос:
Я пытаюсь сопоставить первое вхождение для названия компании : EuroPayment Services S.R.L
. Я попытался сделать его нежадным, добавив ?
, но безуспешно. Что я делаю не так?
Name: EuroPayment Services S.R.L.
Address: Str. Ion Cămpineanu, nr. 11, Bloc Union, etaj 8, camera 803
Name: General Motors S.R.L.
Address: Str. Ion Cămpineanu, nr. 11, Bloc Union, etaj 8, camera 803
Кроме того, как я могу сопоставить второе вхождение названия компании? General Motors S.R.L
Комментарии:
1. Каков именно ваш ожидаемый результат? Если вы хотите вернуть только первое вхождение, не используйте
g
флаг. Какой язык программирования или инструмент вы используете?2. Согласно документам, invoice2data использует Python .
re
Это означает, что вы не должны использовать regexr.com как ваш тестовый сайт, он не поддерживаетre
вкус. Используйте regex101.com вместо этого.3. Я использую инструмент с именем invoice2data для извлечения значений из счета-фактуры в формате PDF.
Ответ №1:
Регулярное выражение для записи первого имени:
Name:s (.*)[sS]*
Пример выполнения здесь.
Вы также можете захватить n-е имя с помощью этого (просто обновите часть индекса на основе 0 {n}
до вашей цели, например {4}
, чтобы получить 5-е имя:
- имя 1:
(?:Name:[sS] ?){0}Name:s (.*)[sS]*
- имя 2:
(?:Name:[sS] ?){1}Name:s (.*)[sS]*
- имя 3:
(?:Name:[sS] ?){2}Name:s (.*)[sS]*
- имя 4:
(?:Name:[sS] ?){3}Name:s (.*)[sS]*
- и так далее…
Комментарии:
1. Спасибо, но мне нужно только первое вхождение:
Europayment Services SRL
2. Я обновил свой ответ, не могли бы вы проверить, соответствует ли он вашим требованиям?
3.спасибо, это сработало! вы знаете, как я могу зафиксировать и второе совпадение?
4.Я обновил свой ответ, чтобы захватить любое n-е имя, которое вам понадобится, будь то 1-й, 2-й, 3-й, 100-й и т.д. Можете ли вы попробовать? Просто обновите индексную часть, например, чтобы получить 5-й элемент
{4}
.