Remplacement avec expressions régulières

Résolu
zwyx Messages postés 146 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 mars 2016 - 4 avril 2008 à 16:40
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 7 avril 2008 à 14:10
Bonjour à tous,

Je travaille sous Delphi6 et je souhaite effectuer des remplacements, de manière automatique, en utilisant les expressions régulières. J'ai déjà étudier pleins de tutoriaux concernant les expressions régulières, mais je n'arrive toujours pas à obtenir ce que je cherche, c'est pourquoi je sollicite votre aide.

Dans presque tout mon code (~3000 lignes), je n'ai mis d'espace ni avant, ni après, les opérateurs de test =, <, >, <=, >= et <>. J'ai remarqué tardivement que cela n'est pas correct d'après les normes standards de codage utilisées. Par contre, j'ai bien mis un espace avant et après le signe d'affectation :=.

Je cherche donc, pour ne pas le faire manuellement, l'expression régulière de remplacement, qui corrigerait mes espacements. De façon à transformer l'exemple suivant,

if i=0then
  i := 2
else if i<=2then
  if i<>84then
    i := 0;

en ce qui suit.

if i = 0then
  i := 2
else if i <= 2then
  if i <> 84then
    i := 0;

Je précise bien que ce n'est qu'un exemple bidon pour illustrer mon problème. Je n'ai bien évidemment pas écrit cet extrait de code.

Je vous remercie pour votre aide, et vous souhaite un bon week-end;

8 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
4 avril 2008 à 20:57
Pourquoi ne pas utiliser un outil qui fait tout ?
indentation, traitement des blancs etc etc

un clic et hop tout ton code nickel chrome et très beau

cantador
3
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
4 avril 2008 à 23:20
Delforexp
bien sur !




Ken@vo




<hr size="2" width="100%" />



Code, Code, Codec !
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
5 avril 2008 à 12:37
Mais oui [mailto:ken@vo ken@vo] et qui va jusqu'à D 2007 !

cantador
0
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
5 avril 2008 à 13:31
Ctrl+j
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zwyx Messages postés 146 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 mars 2016
5 avril 2008 à 16:49
Merci pour vos réponses.

J'essayerai Delforexp dès lundi.

Quant-à Ctrl+J, j'essayerai aussi lundi, parce que je n'ai pas Delphi6 chez moi, mais seulement au boulot.

Mais merci à tous.
0
zwyx Messages postés 146 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 mars 2016
7 avril 2008 à 10:56
Effectivement,

Que demander de plus que ce que fait DelForExp, "a freeware Pascal source code formatter for Delphi". Merci de m'avoir fait découvrir cet outil.

Si quelqu'un sait comment faire avec les expressions régulères, je serais curieux de connaître la solution, même si mon problème est résolu.

Bonne semaine à tous.
0
zwyx Messages postés 146 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 mars 2016
7 avril 2008 à 13:37
Pour les curieux comme moi qui seraient intéressés, j'ai trouvé comment rechercher avec les expressions régulières, toutes les occurences de comparaison, pour lesquelles je n'ai pas mis un espace avant et après l'opérateur.

La formule est la suivante (ce n'est sûrement pas la seule valable, ni la meilleure d'ailleurs):
[^ ](=|<>|<=?|>=?)[^ ]

Voici quelques explications:
la classe entre crochets,  [^ ]:
    tout caractère sauf un espace
le motif entre parenthèses, (=|<>|<=?|>=?):
    le signe = , ou
    le symbole différent <>, ou
    le signe <, suivi de 0 ou 1 fois le signe =, ou
    le signe >, suivi de 0 ou 1 fois le signe =

Bon maintenant, je ne sais pas s'il est possible de les mettre en forme automatiquement. Mais pour ça, il y a DelForExp !
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 14
7 avril 2008 à 14:10
Tu as le source de DelForExp...

cantador
0
Rejoignez-nous