Регулярное выражение для сопоставления первого вхождения строки, начинающейся и заканчивающейся предопределенными символами

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} .