Se connecter avec
S'enregistrer | Connectez-vous

[php] regex sur plusieurs lignes

Dernière réponse : dans Programmation

Bonjour,

J'ai une regex que voici :
Citation :

preg_match('#<b>Options: </b></td><td class=\'ann_cell\' width=\'363\'>(.+)</td>#', $source, $options);


Lorsque dans $source le résultat de la regex est sur une seule ligne, ça marche, mais quand c'est sur plusieurs lignes, çela ne marche pas, je dois ajouter quelquechose, si oui quoi ?
Je suis pas trés fort en regexs..

:hello: 

Autres pages sur : php regex plusieurs lignes

Lassé par la pub ? Créez un compte
Expert Programmation

Ceci est un problème fort connu, à savoir que le "." dans une regexp prend tout sauf les retours de lignes.
Heureusement, il y a la parade qui est le flag "s":
Citation :
Avec cette option, le méta-caractère point (.) remplace n'importe quel caractère, y compris les nouvelles lignes. Sans cette option, le caractère point ne remplace pas les nouvelles lignes. Cette option est équivalente à l'option Perl /s. Une classe de caractères négative telle que [^a] acceptera toujours les caractères de nouvelles lignes, indépendamment de cette option.

Utilise donc:
  1. preg_match('#<b>Options: </b></td><td class=\'ann_cell\' width=\'363\'>(.+)</td>#/s', $source, $options);
Lassé par la pub ? Créez un compte
Tom's guide dans le monde