Как вытащить наименование компании через регулярное выражение

Всем привет.
Как вытащить наименование компании через регулярное выражение.
Заранее благодарен!

Варианты (иногда через пробел и без пробела):
ООО 'РОГА'
ООО "РОГА"
ООО «РОГА»

import re
result = re.findall('(?i)(ооо|ип|зао)', 'привет ООО "РОГА" привет')

Ответы (2 шт):

Автор решения: Алексей Р
  1. Аббревиатуры ОПФ оформляем как незахватываемую группу (?:...)
  2. Пробелы/кавычки любых типов перед между ОПФ и названием забираем как последовательность 1+ не-словесных (non-word) символов \W+. Видов кавычек довольно много, чтобы их все не перечислять, можно применить такой подход.
  3. Забираем последовательность 1+ словесных или пробельных символов
  4. В конце забираем 1 любой замыкающий символ
texts = """ООО 'РОГА'
ООО "РОГА"
пао «РОГА»
пао(РОГА)
пирога
ООО'РОГА и копыта'
"РОГА"
ООО «РОГА»
ип `иванов иван иванович` 
привет ООО "РОГА" привет"""

print(*re.findall(r'(?:ооо|ип|зао|ao|пао)\W+[\w\s]+.', texts, re.IGNORECASE), sep='\n')
ООО 'РОГА'
ООО "РОГА"
пао «РОГА»
пао(РОГА)
ООО'РОГА и копыта'
ООО «РОГА»
ип `иванов иван иванович`
ООО "РОГА"
→ Ссылка
Автор решения: ΝNL993
re.findall('((ооо|ип|зао)\s+[\'"«].*?[\'"»])', 'привет ООО "РОГА" привет', re.I)

Объяснение

Сразу упомяну что я использовать флаг re.I (то же самое что иre.IGNORECASE), который делает нас независимым от кейса букв в строке, то-есть на важно будут буквы заглавные или нет. Теперь начнём с регулярного выражения. В начале мы матчим группу строк, если у нас совпадение, продолжаем. Дальше мы матчим пробел, должен быть как минимум 1 пробел, можно писать больше, это нам обеспечивает символ +, после \s (whitespace). Далее, в квадратных скобках мы вписываем диапазон символов которые могут совпасть, само название может быть любым, главное, чтобы слева и справа были бы кавычки.

→ Ссылка