Page 1 sur 1

Expression régulière

Posté : 27 août 2007, 16:34
par kmeleon
Salut à tous (et désolé pour ce titre pas très explicite),

J'ai un petit problème avec ce motif tout simple : #<script (.*)># que je souhaite appliquer sur (par exemple) <script type="text/javascript" src="scripts/main.js"></script> avec un preg_match(motif, variable, $matches).
Le print_r($matches) me donne:

Code : Tout sélectionner

Array ( [0] => <script type="text/javascript" src="scripts/main.js"></script> [1] => type="text/javascript" src="scripts/main.js"></script )
Alors que je voudrais uniquement récupérer type="text/javascript" src="scripts/main.js" (pour une fonction d'indentation).

Comment faut-il faire pour s'arrêter au premier ">" ?

Bonne soirée

Posté : 27 août 2007, 16:39
par Ryle
Il te faut utiliser l'option U inverser la tendance à la gourmandise des expressions rationnelles, c'est à dire qu'elles vont prendre par défaut la chaine la plus longue correspondant au pattern. L'option U évite ceci :
#<script (.*)>#U

Posté : 27 août 2007, 16:43
par kmeleon
Milles merci, ça marche parfaitement. Le pire c'est que je connaissait ce truc :oops:

Posté : 27 août 2007, 17:06
par Calimero
Ou sinon, quelquechose comme ça :
#<script([^>]*)>#