je veux exclure table de la recherche, sinon, il me récupère un résultat trop grand (va jusqu'au dernier </tr> dans la fichier).
mais là, dès qu'il trouve t ou a ou b ou .... l'expression n'est pas récupérée.
<coup de gueule> Il faudrait qu'un jour PHP supprime les expressions POSIX de la version livrée par défaut ; seuls les masochistes, les nostalgiques et les possesseurs de vieux scripts difficilement modifiables prendraient la peine de les recompiler. </>
On ne le dira jamais assez : utiliser les expressions rationnelles compatibles PERL plutôt que celles de POSIX ! C'est même écrit en tout premier sur la page <http://fr2.php.net/manual/fr/ref.regex.php> :
-------------------- CITATION DU MANUEL ------------------------------ Astuce : PHP supporte aussi des expressions rationnelles compatibles Perl, avec l'extension PCRE functions. Ces fonctions supportent des recherches non-gourmandes, des assertions, des sous-masques conditionnels et toute une gamme de fonctionnalités absentes des expressions rationnelles POSIX. -------------------- CITATION DU MANUEL ------------------------------
Donc : <http://fr2.php.net/manual/fr/ref.pcre.php>.
Ce que tu ne sais pas faire avec eregXXX se fait de plein de manières différentes avec pregYYY. Si vraiment tu veux tous les <td> qui suivent dans la même table, tu peux utiliser les assertions, ou bien la fonction preg_replace_callback() que je conseillais il y a quelques heures à CrazyCat. Mais si tu ne veux qu'un seul <td>, il suffit de limiter la gourmandise des expressions avec un simple « U » comme je l'ai conseillé à CrazyCat dans ma dernière réponse.
En résumé : <http://fr2.php.net/manual/fr/ref.pcre.php>. (Je l'ai déjà dit, non ?)
-- Olivier Miakinen Troll du plus sage chez les conviviaux : le nouveau venu, avec son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
je voudrais faire une recherche avec une expression régulière
mais je voudrais pouvoir exclure une chaine de caractère de la
recherche.
je veux exclure table de la recherche, sinon, il me récupère un
résultat trop grand (va jusqu'au dernier </tr> dans la fichier).
mais là, dès qu'il trouve t ou a ou b ou .... l'expression n'est
pas récupérée.
<coup de gueule>
Il faudrait qu'un jour PHP supprime les expressions POSIX de la version
livrée par défaut ; seuls les masochistes, les nostalgiques et les
possesseurs de vieux scripts difficilement modifiables prendraient la
peine de les recompiler.
</>
On ne le dira jamais assez : utiliser les expressions rationnelles
compatibles PERL plutôt que celles de POSIX ! C'est même écrit en tout
premier sur la page <http://fr2.php.net/manual/fr/ref.regex.php> :
-------------------- CITATION DU MANUEL ------------------------------
Astuce : PHP supporte aussi des expressions rationnelles compatibles
Perl, avec l'extension PCRE functions. Ces fonctions supportent des
recherches non-gourmandes, des assertions, des sous-masques
conditionnels et toute une gamme de fonctionnalités absentes des
expressions rationnelles POSIX.
-------------------- CITATION DU MANUEL ------------------------------
Donc : <http://fr2.php.net/manual/fr/ref.pcre.php>.
Ce que tu ne sais pas faire avec eregXXX se fait de plein de manières
différentes avec pregYYY. Si vraiment tu veux tous les <td> qui suivent
dans la même table, tu peux utiliser les assertions, ou bien la fonction
preg_replace_callback() que je conseillais il y a quelques heures à
CrazyCat. Mais si tu ne veux qu'un seul <td>, il suffit de limiter la
gourmandise des expressions avec un simple « U » comme je l'ai conseillé
à CrazyCat dans ma dernière réponse.
En résumé : <http://fr2.php.net/manual/fr/ref.pcre.php>.
(Je l'ai déjà dit, non ?)
--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
je veux exclure table de la recherche, sinon, il me récupère un résultat trop grand (va jusqu'au dernier </tr> dans la fichier).
mais là, dès qu'il trouve t ou a ou b ou .... l'expression n'est pas récupérée.
<coup de gueule> Il faudrait qu'un jour PHP supprime les expressions POSIX de la version livrée par défaut ; seuls les masochistes, les nostalgiques et les possesseurs de vieux scripts difficilement modifiables prendraient la peine de les recompiler. </>
On ne le dira jamais assez : utiliser les expressions rationnelles compatibles PERL plutôt que celles de POSIX ! C'est même écrit en tout premier sur la page <http://fr2.php.net/manual/fr/ref.regex.php> :
-------------------- CITATION DU MANUEL ------------------------------ Astuce : PHP supporte aussi des expressions rationnelles compatibles Perl, avec l'extension PCRE functions. Ces fonctions supportent des recherches non-gourmandes, des assertions, des sous-masques conditionnels et toute une gamme de fonctionnalités absentes des expressions rationnelles POSIX. -------------------- CITATION DU MANUEL ------------------------------
Donc : <http://fr2.php.net/manual/fr/ref.pcre.php>.
Ce que tu ne sais pas faire avec eregXXX se fait de plein de manières différentes avec pregYYY. Si vraiment tu veux tous les <td> qui suivent dans la même table, tu peux utiliser les assertions, ou bien la fonction preg_replace_callback() que je conseillais il y a quelques heures à CrazyCat. Mais si tu ne veux qu'un seul <td>, il suffit de limiter la gourmandise des expressions avec un simple « U » comme je l'ai conseillé à CrazyCat dans ma dernière réponse.
En résumé : <http://fr2.php.net/manual/fr/ref.pcre.php>. (Je l'ai déjà dit, non ?)
-- Olivier Miakinen Troll du plus sage chez les conviviaux : le nouveau venu, avec son clan, s'infiltre dans les groupes de nouvelles. (3 c.)