white phoenix
Новичок
Reg. exp. Сохранение всех значений подмаски.
Заранее прошу прощенья за идиотский вопрос, в регулярных выражениях у меня опыта не так много. Пишу шаблон для поиска подстрок, столкнулся с тем что нужно повторить подмаску несколько раз (в моем случае 1 и более раз), и сохранить значения в matches. Желая быть правильно понятым скажу, что нужно повторить несколько раз только часть искомой подстроки, а именно:
Вот выражение целиком, оно работает так как нужно, но сохраняет только последнее значение подмаски, а нужно все:
PHP 5.1.0
Спасибо.
Выражение немного подредактировано
Заранее прошу прощенья за идиотский вопрос, в регулярных выражениях у меня опыта не так много. Пишу шаблон для поиска подстрок, столкнулся с тем что нужно повторить подмаску несколько раз (в моем случае 1 и более раз), и сохранить значения в matches. Желая быть правильно понятым скажу, что нужно повторить несколько раз только часть искомой подстроки, а именно:
PHP:
(\[?(?:\s*\.\s*| (?:\s+|(?<=\[)) (?:'.implode('|',$dot).') (?:\s+|(?=\])) )\]?[a-z0-9]*)
PHP:
$pattern =
'~'.
/* Mailbox */ '[a-z0-9_\-]+\s*'.
/* Separator */ '(\[?(?:\s*@\s*|(?:(?:\s+|(?<=\[))(?:'.implode('|',$at).')(?:\s+|(?=\]))))\]?)\s*'.
/* Domain */ '[a-z0-9_\-]*'.
/* Dot and TLD */ '(?:\[?(\s*\.\s*| (?:\s+|(?<=\[)) (?:'.implode('|',$dot).') (?:\s+|(?=\])) )\]?[a-z0-9]*)+'.
'~ix';
$result = preg_match_all($pattern,$string,$matches,PREG_SET_ORDER);
Спасибо.
Выражение немного подредактировано
