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 03/02/2007, 11h57   #1
Invité régulier
 
Inscription : septembre 2005
Messages : 22
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 22
Points : 8
Points : 8
Par défaut Savoir si un texte est contenu entre deux caractères

Bonjour,

J'aimerai savoir si un texte se trouve entre deux caractères |.

Voici un exemple :
Si mon texte est : |test| PHP renvoie TRUE

Je sais qu'il va falloir utiliser du regex mais je n'arrive pas à le mettre en place, si vous pouvez m'aider.

Merci d'avance,
Cordialement,
Mikiman
CodeMikiman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2007, 13h30   #2
Futur Membre du Club
 
Inscription : septembre 2005
Messages : 31
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 31
Points : 15
Points : 15
je dirai ça comme règle : \|[0-9a-zA-Z_]*\|

je me rappelle plus des regex mais essaie toujours
k-nine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2007, 13h37   #3
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
Salut,

un exemple:

Code :
1
2
3
4
5
6
7
8
9
 
$str = '|test|';
 
if (preg_match('/\|.*\|/', $str)) {
  // trouve
}
else {
  // pas trouve
}
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2007, 15h37   #4
Invité régulier
 
Inscription : septembre 2005
Messages : 22
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 22
Points : 8
Points : 8
A paremment sa ne marche pas.

bkill : Le problème est que je ne peux pas savoir à l'avance le texte compris entre | car certaines entrées ne l'on pas.

J'ai en fait une base de donnée avec plusieurs entrées
Champ : texte
Test1
Test2
|Test3|
Test4

Je voudrais pouvoir contrôler si une de ces entrées est délimitée.
CodeMikiman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2007, 11h09   #5
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
Il faut évidemment que tu adaptes le code que je t'ai donné, pour ta situation. L'exemple que je t'ai mis plus haut est simplement là pour te montrer la regexp à utiliser. Tu peux donc oublier mon

et remplir $str avec ce qu'il te conviendra d'avoir...
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2007, 11h25   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Exact, pour compléter un peu, il suffit d'intégrer ce test dans la boucle de parcours des résultats de la requête :
Code :
1
2
3
4
5
6
7
8
$query = mysql_query('SELECT * FROM ma_table;') or die(mysql_error());
while ($array = mysql_fetch_assoc($query)) {
    if (preg_match('/\|.+\|/', $array['mon_champ'])) {
        echo 'Correspondance pour : ' . $array['mon_champ'];
    } else {
        echo 'Aucune correspondance pour : ' . $array['mon_champ'];
    }
}

Julp.
julp 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 20h37.


 
 
 
 
Partenaires

Hébergement Web