Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2011, 15h07   #1
Membre habitué
 
Inscription : octobre 2007
Messages : 362
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 362
Points : 110
Points : 110
Par défaut Expression pour trouver une String

Bonjour

J'ai une String qui peut avoir les suivantes valeurs:

"A"
"ABCB"
"A_B"
"A_B_C"
"AB_C"
"A_BC"
"A_BABAJD_DKK"

Je veux créer une expression régulière qui soit capable de capturer les occurences décrites.

Je ne veux pas que l'expression régulière capture des occurences comme:
_A
A_
AB_CD_C_

Pour résumé, mon string est correcte s'il ne contient que des majuscules et peut être des tirets, si il commence par une majuscule, si il termine par une lettre majuscule et si, le string contient des tirets, qu'il n'y en est un seul à la foi.

Mon expression régulìere actuelle est la suivante:

Code :
1
2
 
"^[A-Z]+\\_?[A-Z]+$"
Cependant, elle ne marche que quand le string a un seul tiret.

exemple: "AB_CD" => OK
"AB_CD_EF" => NOT OK (et je voudrais que ca passe)

Une idée de ce qu'il me manque?

Merci!
pjmorce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h19   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
comme ça ? :
^[A-Z][A-Z_]*(?<!_)$
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h20   #3
Membre habitué
 
Inscription : octobre 2007
Messages : 362
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 362
Points : 110
Points : 110
Merci pour ta réponse. Mais j'ai trouvé une solution:

"^[A-Z]+[A-Z\\_{0,1}]*[A-Z]+$"

Je vais tout de même essayé la tienne.

Merci
a+

Citation:
Envoyé par stealth35 Voir le message
comme ça ? :
^[A-Z][A-Z_]*(?<!_)$
pjmorce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h21   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
marche pas avec juste A la tienne
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h24   #5
Membre habitué
 
Inscription : octobre 2007
Messages : 362
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 362
Points : 110
Points : 110
Tu as raison...

Et la tienne et la mienne ne marchent pas quand il y a plus d'un tiret de suite...

Ce que je voudrais:

A_B => OK
A__B => NOT OK

Citation:
Envoyé par stealth35 Voir le message
marche pas avec juste A la tienne
pjmorce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 15h25   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
mince j'ai oublié ça, je regarde ça


EDIT : ^(?:[A-Z]_{0,1})+(?<!_)$
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 12h40   #7
Membre régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 55
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2011
Messages : 55
Points : 77
Points : 77
/^[A-Z]+(_[A-Z]+)*$/ tout simplement non ? (non testé)

EDIT : Testé et Approuvé (de mon coté)
Avalion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 13h50   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par Avalion Voir le message
/^[A-Z]+(_[A-Z]+)*$/ tout simplement non ? (non testé)

EDIT : Testé et Approuvé (de mon coté)
tu prends de la ressource en faisant une capture inutilement
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 16h54   #9
Membre régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 55
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2011
Messages : 55
Points : 77
Points : 77
Citation:
Envoyé par stealth35 Voir le message
tu prends de la ressource en faisant une capture inutilement
Lol ba /^[A-Z]+(?:_[A-Z]+)*$/ Mais après c'est à vous de voir :p
Avalion est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h56.


 
 
 
 
Partenaires

Hébergement Web