У меня есть нижеследующее регулярное выражение, которое ставит '\ n' вместо запятой (,), только когда запятая идет после (> или @) (не следующий символ, но в любое время после появления "> или @".
$address =~ s/([^@>]+[@>][^,]+),\s*/$1\n/g;
Выше Regex преобразует ввод в вывод, как показано ниже,
Ввод:
$address ="mail1, local<mail1@mail.local>, mail2@mail.local, <mail3@mail.local>, mail4 local<mail4@mail.local>"
Выход:
mail1, local<mail1@mail.local>
mail2@mail.local
<mail3@mail.local>
mail4, local<mail4@mail.local>
Теперь, что яя пытаюсь сделать это, чтобы достичь того же, но если запятая (,) находится между двойными кавычками ("), тогда избегайте заменять его на '\ n'.
В основном для ниже Вводниже.
Вход:
$address = "mail1,local<mail1@mail.local>, \"mail2@,mail.local\"<mail2@mail.local>";
Токовый выход:
mail1,local<mail1@mail.local>
"mail2@
mail.local" <mail2@mail.local>
Ожидаемый выход:
mail1,local<mail1@mail.local>
"mail2@,mail.local" <mail2@mail.local>