|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Bonjour,
J'ai une chaine comme ceci par exemple Citation:
Code :
preg_match("#\[.*?\](.*?)#",$chaine1,$titre); Et pour finir quand je fais un echo de $titre[0] il m'affiche [Challenge] Là je suis perdu pouvez vous m'éclairer ??? |
|
|
|
00
|
|
|
#2 | ||
![]() ![]() |
essaie :
Code :
__________________
Rédacteur "éclectique" (XML, IRC, Web...) Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC) je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque ! pensez à la balise [code] (bouton #) et au tag (en bas)
|
||
|
|
00
|
|
|
#3 | |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Je l'ai sans le ? et ca fonctionne mais j'ai un nouveau problème...
Apparemment on peut mettre comme ceci aussi Citation:
Code :
preg_match("#^\[.*\](.*)|^\/.*\/(.*)#",$chaine,$titre) |
|
|
|
00
|
|
|
#4 | ||||
![]() ![]() |
l'opérateur d'alternative ( | ) est celui qui a la priorité la plus basse, donc il faut mettre des parenthèses, ou alors utiliser plutôt les classes de caractères
Code :
Code :
__________________
Rédacteur "éclectique" (XML, IRC, Web...) Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC) je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque ! pensez à la balise [code] (bouton #) et au tag (en bas)
|
||||
|
|
00
|
|
|
#5 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
c'est nickel...j'ai mis la première solution comme tu me l'as conseillé.
Mais peux m'expliquer pourquoi ? avec tout ces [ je suis perdu |
|
|
00
|
|
|
#6 |
![]() ![]() |
alors, c'est vrai que les regexp peuvent être un peu déroutantes
Bon, juste au cas où, un petit rappel sur les classes de caractères dans les regexp les classes de caractères permettent d'autoriser un ensemble de caractère càd que le pattern #^[abc]$# matchera s'il est appliqué à l'une des trois chaînes : "a", "b" ou "c" de plus #^[abc]+$# matchera s'il est appliqué à une chaîne composée uniquement de a, b et c contrairement à #^(a+|b+|c+)$# qui matchera des chaînes qui ne seront que soit une suite de a, soit une suite de b, soit une suite de c, j'espère que tu as bien compris la différence A noter : tous les meta-caractères autres que ] perdent leur signification (sauf cas particulier que je vais indiquer plus loin ensuite, pour les classes de caractères il existe quatre syntaxes particulières, la première qui permet de spécifier un interval : [a-z] permet de valider n'importe quelle lettre minuscule [0-9A-Za-z] permet de valider un chiffre héxadécimal, on peut aussi faire un mix : [A-Z02468a-z] toutes les lettres et les chiffres paires etc... de ce fait, il est impossible de spécifier un - dans une classe de caractères, sauf (syntaxe spéciale n°2) s'il est spécifié en dernier, càd : [a-zA-Z0-9-] permet de spécifier toutes les lettres, tous les chiffres et le tiret. la troisième syntaxe, permet de spécifier un ] dans la classe, les classes vides sont refusées donc []a] valide un "a" ou un "]" la quatrième est une classe de négation, c'est à dire que ça valide tous les caractères qui ne sont pas indiqués dans la classe, par exemple : [^a-zA-Z] validera tout ce qui n'est pas une lettre j'espère que tu as bien compris ceci, c'est peut être un peu fouilli, tu peux consulter la doc officielle de PCRE là : http://fr.php.net/pcre (et pages suivantes) pour en revenir à notre pattern : #^[[/].*[]/](.*)$# #^ <= bon pas besoin de moi là [[/] <= classe de caractère composée de [ et / c'est à dire qu'on veut un [ ou un / .* <= pas besoin de moi ^^ [] <= pas de classe vide, donc on ajoute ] et on continue []/] <= donc classe avec ] et / (.*)$# <= la fin du pattern donc en fait, si tu as bien suivi, tu remarqueras que le pattern valide aussi des trucs de la forme "[Chapitre/ Titre" ou "/Chapitre] Titre" [Ce que ne fait pas le second pattern J'espère que c'est suffisament clair
__________________
Rédacteur "éclectique" (XML, IRC, Web...) Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC) je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque ! pensez à la balise [code] (bouton #) et au tag (en bas)
|
|
|
00
|
|
|
#7 |
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Oui là c'est plus clair pour moi. Et je te remercie pour ce petit cours
|
|
|
00
|
|
|
#8 |
![]() ![]() |
Je t'en prie
__________________
Rédacteur "éclectique" (XML, IRC, Web...) Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC) je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque ! pensez à la balise [code] (bouton #) et au tag (en bas)
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com