У меня есть массив регулярных выражений, и я пытаюсь пройтись по текстовому документу, чтобы найти первый шаблон, назначить его в качестве ключа массива, затем продолжить поиск второго шаблона и назначить его в качестве значения.Всякий раз, когда я сталкиваюсь с шаблоном 1, я хочу, чтобы он всегда назначался в качестве ключа, и все совпадения шаблона 2, которые следуют до тех пор, пока я не столкнусь с новым ключом, будут назначены этому первому ключу в качестве значений.
Структура текстового документа:
Subject: sometext
Email: someemail@email.com
source: www.google.com www.stackoverflow.com www.reddit.com
Итак, у меня есть массив выражений:
$expressions=array(
'email'=>'(\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b)',
'url'=>'([A-Za-z][A-Za-z0-9+.-]{1,120}:[A-Za-z0-9/](([A-Za-z0-9$_.+!*,;/?:@&~=-])|%[A-Fa-f0-9]{2}){1,333}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*,;/?:@&~=%-]{0,1000}))?)'
);
Я хочу пройтись по текстовому документу и сопоставить адрес электронной почты, затем назначить его в качестве ключа для массива и назначитьвсе URL-адреса, следующие за значениями, с выводом текста выше:
array(
'someemail@email.com' => array (
0 => 'www.google.com',
1 => 'www.stackoverflow.com',
2 => 'www.reddit.com'
)