正規表現の配列があり、テキスト ドキュメントをループして最初のパターンを見つけようとしています。それをキーとして配列に割り当て、次に 2 番目のパターンを見つけて値として割り当てます。パターン 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'
)