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

  FORUM HardWare.fr
  Programmation
  Perl

  Remplacer une expression régulière par une autre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Remplacer une expression régulière par une autre

n°1837211
debeman
Posté le 13-01-2009 à 10:51:38  profilanswer
 

Bonjour à tous
je cherche a remplacer dans un fichier une expression régulière par une autre  
je sais les suprimer avec un sed mais pas les remplacer  
 
en gros j'ai une expression reguliere :
[+-=_] ( .* ) [+-=_] et il faut que je retire les parentheses, en fait il faut que je retire la premiere occurence de la parenthese ouvrante et la derniere de la parenthese fermante.
avant la parenthese j'ai soit un + un - un = ou un espace et après la parenthese fermante j'ai la meme chose
 
j'en ai besoin pour comparer du code en gros si on ecri a=(b) ou a=b c'est la meme chose ...
il ne me reste plus que ce probleme a gérer, j'ai deja gerer,  
j'ai reformater mes deux fichiers a comparer avec la commande  perl -p -e 's/\n/ /g'  ( suppression des retour a la ligne ) j'ai egalement virer tous les commentaires avec un sed
mais la je bloque et je n'y connait rien en perl.
 
merci d'avance

mood
Publicité
Posté le 13-01-2009 à 10:51:38  profilanswer
 

n°1837228
debeman
Posté le 13-01-2009 à 11:14:53  profilanswer
 

dans chaine j'ai a=(b)
j'ai essaye cat chaine | perl -p -e 's/[+-=]\([*^\)]\)[+-=]/$1$2$3/g'
sans succes

n°1837296
couak
Posté le 13-01-2009 à 13:42:44  profilanswer
 

pour stocker les occurences trouvées dans les variables, il faut les protéger avec des parenthèses
du coup ton truc se transforme en :

Code :
  1. echo "a=(b)" | perl -pe 's/(\()(.+)(\))/$2/;'

n°1837368
debeman
Posté le 13-01-2009 à 15:10:36  profilanswer
 

d'accord merci je crois avoir compris j'essaie des commandes et je vous tiens au courant

n°1837450
debeman
Posté le 13-01-2009 à 17:07:33  profilanswer
 

merci  
 

Code :
  1. perl -pe 's/([+-= ])(\()([0-9a-zA-Z]+)(\))([+-= ])/$1$3$5/'


semble marcher du moins sur un exemple simple cela fait ce que je veux
 :hello:


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

  Remplacer une expression régulière par une autre

 

Sujets relatifs
[ASP.NET & C#] Pagination : remplacer les numéros par "..."Evaluer une expression puis passer la valeur dans une variable
expression reguliereCherche nouveau SGBD pour remplacer Access
Remplacer un mot par ce qui a été saisi en InputBox[Resolu]Une ame charitable pour me remplacer "oleacc.h"
Expression rationnelles et ordre de parcoursTester un aliasmatch / expression rationnelle
Au click, remplacer un div par un autre 
Plus de sujets relatifs à : Remplacer une expression régulière par une autre


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