如何通过正则表达式识别法律中的公司名称

How to identify companies names in laws via regex

意大利法律已正式发布在 Gazzetta Ufficiale 上,我正在尝试使用以下正则表达式来识别公司名称:

azienda|societa'\s+([\w\s-]+) ha

匹配得体的片段,例如:

Vista la domanda presentata in data 26 febbraio 2021 con  la  quale
la societa' Orpha-Devel Handels Und  Vertriebs  GMBH  ha  chiesto  la
riclassificazione dalla classe C(nn) alla  classe  H  del  medicinale
«Tresuvi» (treprostinil) relativamente alle confezioni aventi  A.I.C.
n. 049207032, 049207044, 049207018 e 049207020;

返回字符串“Orpha-Devel Handels Und Vertriebs GMBH”在匹配 group.In 这种情况下是“完美的”我只希望结尾的空白(通常是一个或两个)不包含在返回匹配组。

您可以使用

(?:azienda|societa)'\s+(\w+(?:[\s-]+\w+)*)\s+ha
(?:azienda|societa)'\s+(.*?)\s+ha

参见regex demo #1 and regex demo #2

请注意,您应该将 aziendasocieta 分组,否则捕获组将仅匹配 societa,而不匹配 azienda

详情:

  • (?:azienda|societa) - aziendasocieta
  • ' - 一个 ' 字符
  • \s+ - 一个或多个空格
  • (\w+(?:[\s-]+\w+)*) - 第 1 组:一个或多个单词字符,然后是一个或多个 whitespaces/hyphen 个字符的零次或多次重复,然后是一个或多个单词字符
  • (.*?) - 第 1 组:除换行字符外的任何零个或多个字符,尽可能少
  • \s+ - 一个或多个空格
  • ha - ha 字符串。