我有一个正则表达式数组,并试图遍历文本文档以找到第一个模式,将其指定为数组的键,然后继续查找第二个模式并将其指定为值。每当我遇到模式 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'
)