Problème de regex, capture de texte entre 2 caractères [Résolu]

cs_b4d 29 Messages postés dimanche 23 janvier 2005Date d'inscription 18 mars 2008 Dernière intervention - 18 mars 2008 à 12:20 - Dernière réponse : cs_b4d 29 Messages postés dimanche 23 janvier 2005Date d'inscription 18 mars 2008 Dernière intervention
- 18 mars 2008 à 12:46
Bonjour,

J'ai un petit problème avec des regex !

Après avoir longtemps cherché, j'ai trouvé la solution à mon premier problème. Mais pas au second !

J'ai une chaîne de caratère qui contient un opérateur, un @, un nom, et éventuellement un point suivi de caractères quelconques.
Exemple:<=@23.p.ao

On connait l'opérateur et le @.

J'aimerais récupérer le nom compris entre le @ et le point. Attention que le @ sera toujours là, mais le point (et la chaine de caractères qui le suit) lui est facultatif.

J'aimerais aussi que s'il n'y a rien entre le @ et le point (ou la fin de chaine), $x soit vide.

J'ai ceci mais ça foire:
$x = preg_replace ('#(?:.*)@(.*)\.?(?:.*)#U', '$1', $opt);

J'ai traivaillé avec preg_replace mais n'importe quel fonction est autorisée si ça fonctionne !

Je sais que c'est un peu exigeant... mais si vous saviez venir à mon secours, ça me ferait très plaisir!

Merci beaucoup.
Afficher la suite 

Votre réponse

1 réponse

cs_b4d 29 Messages postés dimanche 23 janvier 2005Date d'inscription 18 mars 2008 Dernière intervention - 18 mars 2008 à 12:46
+3
Utile
Désolé d'avoir été impatient (j'ai quand même cherché toute la matinée...) en faisant un autre test, j'ai trouvé:




$x = preg_replace ('#^(?:[^@]*)@([^.]*)[.]?(.*)#s', '$1', $opt);

Ca marche super chez moi et sur le serveur de projet...

Merci quand même.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_b4d

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.