Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3252 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  optimisation de plusieurs regexp en une seule.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

optimisation de plusieurs regexp en une seule.

n°1613974
edwoud
⭐ shériff de l'espace
Posté le 21-09-2007 à 18:39:30  profilanswer
 

Bonjour à tous. Je suis en train d'écrire un soundex_fr. Il est presque fini, mais je me retrouve avec pas mal de choses qui sont optimisables, du moins en suis-je persuadé!
 
Dans mon code, j'ai un paquet de lignes comme celles-ci. Je n'ai pas bien saisi le concept des {1} ou \1 dans la regexp et je ne trouve pas de documentation qui l'explique réellement. Alors si une bonne âme sait le faire, je veux bien un coup de pouce.
 
$sIn = preg_replace( '`^ENB`', 'ANB', $sIn );
$sIn = preg_replace( '`^ENCH`', 'ANCH', $sIn );
$sIn = preg_replace( '`^END`', 'AND', $sIn );
$sIn = preg_replace( '`^ENF`', 'ANF', $sIn );
 
La cerise sur le gâteau serait de pouvoir inclure à la regexp du dessus la ligne suivante aussi. Mais là, je ne sais pas si c'est faisable, vu que le 'C' devient 'K'
 
$sIn = preg_replace( '`^ENC`', 'ANK', $sIn );
 
 
 
Merci.

mood
Publicité
Posté le 21-09-2007 à 18:39:30  profilanswer
 

n°1614001
edwoud
⭐ shériff de l'espace
Posté le 21-09-2007 à 20:05:37  profilanswer
 

Bon ben j'ai trouvé une première optimisation:
 
$sIn = preg_replace( '`^EN([BDF]|CH)`', 'AN$1', $sIn );
 
Les parenthèses définissent une capture qu'on récupère avec $1 dans le remplacement.
 
Reste à fusionner avec la dernière ligne. Mais là, gros doute.
 

n°1614065
sielfried
Posté le 22-09-2007 à 07:40:36  profilanswer
 

C'est faisable en passant par l'option e ou par preg_replace_callback mais si c'est juste pour une regexp particulière il paraîtrait fortement logique de laisser ça dans un preg_replace à part.  
 
On voit directement le cas particulier en lisant le code et ça évite de rentrer dans un niveau de complexité supplémentaire.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1614066
edwoud
⭐ shériff de l'espace
Posté le 22-09-2007 à 09:02:38  profilanswer
 

Je jetterai un œil à ces fonctions. Merci! C'est vrai que déjà, dans le code original, ça me remplace en plusieurs endroits 15 lignes en une.
 
Pour le code, vu qu'à terme je compte le diffuser, il sera fourni en commentaires ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  optimisation de plusieurs regexp en une seule.

 

Sujets relatifs
Rafraichir plusieurs div en même tempsAfficher/masquer plusieurs div à un seul endroit
decouverte de plusieurs nombresbouton avec plusieurs cible
Validation plusieurs formulaires ![Turbo Pascal 7] Optimisation trunc() et écriture dans le code
Etaler des réultats sur plusieurs pages[log4j] optimisation: tester si niveau actif avant de logger?
[regexp] Extraire les lignes d'un tableau d'une page htmlValidation de plusieurs conditions avant sauvegarde info dans un fichi
Plus de sujets relatifs à : optimisation de plusieurs regexp en une seule.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR