Extraire chaine et comparer
2 messages
• Page 1 sur 1
- passion
- WRInaute accro

- Messages: 3105
- Inscription: 6 Jan 2006
Extraire chaine et comparer
Bonjour,
A la lecture du poste, on va certainement me dire ...bah, tu fais une regex!
Oui ok mais depuis hier soir , je cale
Voilà, je voudrais que dans une "$variableA"(textarea comprenant commentaire + email) , je puisse extraire uniquement l'email...alors pour tenter de voir si j'étais dans le vrai
J'ai d'abord, ma variable "$Email" sous forme de regex comme ceci:
Ensuite, j'utilise quoi? un "preg_match" genre:
j'ai vu le "preg_match_all" mais voit pas comment m'en servir?
Merci de votre aide
A la lecture du poste, on va certainement me dire ...bah, tu fais une regex!
Oui ok mais depuis hier soir , je cale
Voilà, je voudrais que dans une "$variableA"(textarea comprenant commentaire + email) , je puisse extraire uniquement l'email...alors pour tenter de voir si j'étais dans le vrai
J'ai d'abord, ma variable "$Email" sous forme de regex comme ceci:
$Email = "#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#";
Ensuite, j'utilise quoi? un "preg_match" genre:
if (preg_match($Email, $variableA))
{
echo "Dans la chaine, il y a un email";
}
else
{
echo"Pas d'email dans la chaine";
}
j'ai vu le "preg_match_all" mais voit pas comment m'en servir?
Merci de votre aide
-

KOogar - WRInaute accro

- Messages: 3884
- Inscription: 16 Nov 2004
preg_match retourne un tableau et faux en cas d'erreur. Il n'existe pas de fonction qui fasse ce que tu veux en 1 fois. En fait il faut d'abord ressortir les mots de ton texte et les passer dans un tableau. Boucler sur le tableau et à l'aide d'un REGEX, tu pourras voir si l'un des elements du tableau contient bien une adresse mail.
- Code: Tout sélectionner
<?php
$Email = "/^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}/";
$texte = 'J\'ecris a cette adresse : mail@ndd.fr car c\est la mienne';
$regs = preg_split("/[\s,:]+/", $texte);
$i=0;
$nb = sizeof($regs);
foreach($regs as $key) {
if ($i < $nb) {
preg_match($Email, $key, $matches, PREG_OFFSET_CAPTURE);
if (!empty($matches[0]))
echo 'Trouvé : '.$key.'';
$i++;
}
else
break;
}
// Affiche : Trouvé : mail@ndd.fr
?>
2 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- extraire une sous chaine d'une chaine
- Extraire une chaine de caractères
- extraire variable indépendant dans chaine de caractere
- Extraire une chaine d'un fichier (eregi)
- Extraire un code postal dans une chaine
- [RESOLU ]extraire un chaine de carcatére a partir d'un url
- extraire une sous chaine à gauche d'un point
- Expression régulière pour extraire une chaine entre 2 tags
- [script] Extraire d'une chaîne les mots commençant par une majuscule
- [php] enlever une partie de chaine d'une chaine complete
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités
