Page 1 sur 1

regex assez complexe

Posté : 14 nov. 2016, 12:57
par J-Nicolas
Je dois remplacer une ligne de code par une autre. C'est dans une base de données, mais je l'ouvrirais dans un éditeur de texte pour faire le chercher et remplacer.

Voilà ce que j'ai :

Code : Tout sélectionner

<iframe width="632" height="356" src="https://www.youtube-nocookie.com/embed/k7vEHYgan6E?rel=0" frameborder="0" class="image-centre" allowfullscreen="allowfullscreen"></iframe>
Et voilà ce que je veux :

Code : Tout sélectionner

<div class="video-container"><iframe width="640" height="360" src="https://www.youtube-nocookie.com/embed/k7vEHYgan6E?rel=0" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>
J'ai déjà essayé 50 fois, mais la syntaxe nécessaire est trop complexe pour moi.
J'ai PSPad, Notepad++ et Atom comme softs. Suis aussi preneur de conseils pour un autre logiciel.
Merci à ceux qui me répondront.

Re: regex assez complexe

Posté : 14 nov. 2016, 13:34
par moogli
salut,

tu peux tester tes expressions régulières de façon simple sur https://regex101.com/

si tu utilises l'expression suivante

Code : Tout sélectionner

<iframe width="(\d{0,})" height="(\d{0,})" src="(.+)" frameborder="0" class="image-centre" allowfullscreen="allowfullscreen"></iframe>
et pour remplacement

Code : Tout sélectionner

<div class="video-container"><iframe width="$1" height="$2" src="$3" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>
tu devrais avoir ce que tu souhaites (testé avec atom).

ce serait plus simple de le faire directement dans le SGBD,
Par exemple pour mysql http://dev.mysql.com/doc/refman/5.7/en/ ... tor_regexp
et un exemple avec une UDF pour simplifier la suite : http://www.databasejournal.com/features ... mysql.html


@+

Re: regex assez complexe

Posté : 14 nov. 2016, 14:38
par J-Nicolas
Merci de cette réponse !
J'ai abandonné l'idée de faire la manip direct dans la BDD, parce que si je fais une erreur, je ne pourrais pas la rattraper.

Cela ne semble pas marcher sur Atom, j'ai un petit sens interdit qui s'affiche sur le bouton Replace All...
Je mets 640 et 360 à la place de $1 et $2, puisque ces valeurs sont fixes, tandis que la valeur src ne change pas. Je continue à tester...

Re: regex assez complexe

Posté : 14 nov. 2016, 14:39
par J-Nicolas
Merci aussi pour
https://regex101.com/
Très bone idée que d'avoir fait ce site.

Re: regex assez complexe

Posté : 16 nov. 2016, 15:47
par moogli
Merci de cette réponse !
J'ai abandonné l'idée de faire la manip direct dans la BDD, parce que si je fais une erreur, je ne pourrais pas la rattraper.
c'est pour cela que les sauvegardes existe ;)
Cela ne semble pas marcher sur Atom, j'ai un petit sens interdit qui s'affiche sur le bouton Replace All...
Je mets 640 et 360 à la place de $1 et $2, puisque ces valeurs sont fixes, tandis que la valeur src ne change pas. Je continue à tester...

pour atom tu as activé l'utilisation d'expressions régulières ? le bouton ".*" a droite de find ?
atom_reg_exp.png
pour https://regex101.com/ effectivement le mec à eu une bonne idée, surtout en utilisant différents langages ;)
Il en existe d'autre mais c'est celui qui me convient le mieux.

@+

Re: [RESOLU] regex assez complexe

Posté : 16 nov. 2016, 19:09
par J-Nicolas
Oui, voilà, j'y suis arrivé. Je n'ai vraiment pas l'habitude de faire des choses comme cela, alors je n'ai pas les bons reflexes.

A côté de cela, manifs en direct sur la DB ou dans un éditeur de texte, je prendrais toujours l'éditeur. Si je fais une fausse manip, un Ctrl+Z et c'est réparé, alors que s'il faut que je réinstalle la base à partir d'une sauvegarde, c'est nettement plus de boulot.