Я использую следующий код Python регулярного выражения для анализа значений из поля сообщения электронной почты:Regex шаблон неожиданного значение
import re
PATTERN = re.compile(r'''((?:[^(;|,)"']|"[^"]*"|'[^']*')+)''')
list = PATTERN.split(raw)[1::2]
Список должны выводить имя и адрес каждого получателя, на основании либо», " или ";" как разделитель. Если эти значения находятся в кавычках, они должны быть проигнорированы, это часть имени, часто: «Фамилия, имя»
В большинстве случаев это работает хорошо, однако в следующем случае я неожиданно поведение:
"Some Name | Company Name" <[email protected]>
В этом случае он разделяется на "|" персонаж. Несмотря на то, что когда я проверяю шаблон на веб-сайтах регулярных выражений, он выбирает имя и адрес в целом. Что я делаю не так?
Пример входных данных будет:
"Some Name | Company Name" <[email protected]>, "Some Other Name | Company Name" <[email protected]>, "Last Name, First Name" <[email protected]>
Он нигде не разделяется. Дает мне выход '['« Некоторое имя | Название компании »<имя@example.com>']' – nu11p01n73R
Это правильно, обычно их было бы несколько в строке. Я хочу выделить их. Однако, если я запускаю его в своем движке Google, он разбивается на | – Vincent