所以我尝试了这个正则表达式:
$email = '';
preg_match('<.*?>', 'sadfas<email@email.com>', $email);
echo $email[0];
目标结果是提取“email@email.com”,因为它位于符号之间...但是它没有用...
我做错什么了?
最佳答案
您忘记了正则表达式定界符(/
是流行的定界符)。您还应该使用子模式仅匹配地址,而不匹配<>
:
preg_match('/<(.*?)>/', 'sadfas<email@email.com>', $email);
echo $email[1];
或者,您可以先行回顾并向后看,以避免使用子模式:
preg_match('/(?<=<).*?(?=>)/', 'sadfas<email@email.com>', $email);
echo $email[0];