Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : syntaxe des masques de preg_match() - probléme de nouvelle ligne [ Divers / Débutant(e) ] (Mastronic)

mercredi 12 septembre 2007 à 05:41:53 | syntaxe des masques de preg_match() - probléme de nouvelle ligne

Mastronic

Membre Club

Bonjour,

j'ai cette fonction

preg_match('/'.$t1.'(.*)'.$t2.'/',$source,$resultat) qui fonctionne tres bien sauf si  il y a un retour à la ligne entre les balise $t1 et $t2     ( ce que je veux recuperer )


la doc ( [ Lien ])  dit:

pour le masque (.*)

. Point  -->Remplace n'importe quel caractère, hormis le caractère de nouvelle ligne (par défaut) ; 
 
En dehors d'une classe de caractères, un point remplace n'importe quel caractère, même invisible et à l'exception du caractère de nouvelle ligne. Avec l'option PCRE_DOTALL le point remplace n'importe quel caractère, même le caractère de nouvelle ligne. La gestion des points et complètement indépendante de ^ et $. Le seul point commun est que les deux ont un comportement particulier vis-à-vis des caractères de nouvelle ligne. Le point n'a pas de comportement particulier dans une classe de caractères.

J'ai donc essayé d'ecrire:
preg_match('/'.$t1.'(.*)'.$t2.'/',$source,$resultat,PCRE_DOTALL)  mais la constante n'est pas reconue (je suis avec PHP 5.2.0)


il indique aussi que l'option peut être changée à l'intérieur du masque lui-même, avec des séquences mises entre "(?" et ")"   donc ici (?s)  ou un dérivé..

Je n'arrive pas à resoudre ce probléme..  comment faut t'il ecrire ce masque ?

D'avance Merci

 


mercredi 12 septembre 2007 à 15:20:10 | Re : syntaxe des masques de preg_match() - probléme de nouvelle ligne

Mastronic

Membre Club
Réponse acceptée !
je remerci sparko du tchat (IRC) pour m'avoir donner la réponse.

En fait il faut utilisé l'option gourmant 's' et ensuite le restreindre par un ? dans la parenthése...  

ce qui donne:  

 preg_match('/'.$t1.'(.*?)'.$t2.'/s',$source,$resultat)

$t1 et $t2 etant les balise qui delimite ce que l'on veut detecté.




Cette discussion est classé dans : ligne, caractère, probléme, preg, match


Répondre à ce message

Sujets en rapport avec ce message

preg_replace [ par Tomcube ] Est-ce que quelqu'un pourrait me modifier cette ligne pour la faire accepter les retours à la ligne (\n), j'ai trop de mal avec les masques ! $text = Métacaractères... [ par mfaraday ] Salut...Est-ce que quelqu'un pourrait m'expliquer comment utiliser les métacaractères dans un profil de recherche pour la fonction preg_match par exem Masque pour preg_match() ... Aidez-moi ! [ par LocalStone ] Alors, j'expose le problème : J'ai 1 fichier texte qui contient des ligne du style : 0004 - Chu Chu Rocket (J)Donc le masque approprié pour sépare limiter le nombre de caractère dans une ligne d'un textarea!!! [ par daveda ] bonjour,savez-vous comment limiter de nombre de caractère dans une ligne qui est dans un textareacar quand je tape un texte dans le textarea sans mett Problème avec preg_match_all [ par Bountard ] Salut à tous, j'ai un petit problème avec l'utilisation de preg_match_all. Pour faire plus simple voila mon bout de code d'essai :   $html = ' un Preg_match_all , soucis d'utilisation [ par Bountard ] Bonjour à tous, j'ai un problème depuis quelques jours avec preg_match_all. Voila mon code : $html = ' un deux un bis Probléme de pattern [ par SA7BOOCH ] Bonjour,J'ai un probléme de pattern, je veux découper une chaine de caractére pour faire une recherche sur chaque partie de cette chaine.les caractére utilisation de preg_match [ par joebuz ] bonjour, voila j'ai 4 type de phrases (pour l'instant) et je veux en extraire le morceau compris entre // et //1- $phrase = "salut visiteur //act_001. Preg_match [ par w_minisplash_w ] Bonjour à tous,Voici mon problème :J'ai une chaine './dossier_1/dossier_2/....../dossier_n'Je veux en extraire dossier_nJ'ai donc essayé avec preg_mat info ligne de commande [ par ianthorpe62 ] slt tout le monde, g cette ligne de code qui fonctionne : preg_match_all("/(]*>)(.*)()/", $texte_html, $matches, PREG_SET_ORDER);  mais je ne compren


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.