Você pode tornar suas expressões regulares um pouco mais fáceis de ler e depurar se nomear seus grupos de correspondência.
A seguinte expressão pode ser usada como uma maneira (muito simples) de analisar e-mails:
preg_match('/^([^@]+)@(.+)$/', $your_email, $matches);
Normalmente, você faria referência à parte do nome do e-mail como $matches[1]
, então, se quisesse ter certeza de que o e-mail foi analisado corretamente, você usaria:
if (isset($matches[1], $matches[2]) { ...
Mas seria melhor se seu código se explicasse, então, em vez disso, use esta expressão:
/^(?<name>[^@]+)@(?<domain>.+)$/
E então, em seu código, você escreveria:
if (isset($matches['name'], $matches['domain']) { ...
O que torna óbvio exatamente quais partes da expressão você está testando.