2010-09-23 1 views
2

J'essaye d'analyser le texte pour l'identification d'email utilisant php/regex. Existe-t-il des classes ou des méthodes intégrées pour cela? Le texte contient plusieurs ID d'e-mail à des endroits aléatoires.Texte d'analyse pour les ID d'email

La source du texte est des fichiers .doc, que je copie ensuite dans des formulaires, à traiter sur submit.

preg_match('/^[^@][email protected][a-zA-Z0-9._-]+\.[a-zA-Z]+$/', $email) //from php.net 

J'ai présenté une question similaire sur superuser des solutions logicielles au problème.

Répondre

3

Il est difficile de détecter avec précision les courriels intégrés dans le texte courant. Vous pouvez soit faire correspondre des éléments qui ne sont pas des adresses e-mail erronées, soit manquer des adresses e-mail valides mais étranges.

Un bon point de départ est

preg_match_all('/\b[A-Z0-9._%+-][email protected](?:[A-Z0-9-]+\.)+[A-Z]{2,6}\b/i', $subject, $result, PREG_PATTERN_ORDER); 
for ($i = 0; $i < count($result[0]); $i++) { 
    # Matched text = $result[0][$i]; 
} 

(généré par RegexBuddy de sa bibliothèque)

Il correspondra à la plupart des adresses "normales" ok, mais ne trouvera pas les comme [email protected] ou "Tim\ O'Reilly"@microsoft.com. Et bien sûr, il va correspondre à un non-sens comme [email protected].

+0

merci. Je vais regarder dedans. – abel

+0

qui a très bien fonctionné. Je vous remercie! – abel

Questions connexes