Expression régulière pour rechercher/remplacer Dreamweaver

Nouveau WRInaute
Bonjour

Malgré mes recherches je ne trouve pas l'expression régulière qui me permettait de rechercher/remplacer (dreamweaver 8) dans des centaines de fichiers html :

recherche
<div class="Style145" id="Layer70" align="justify"><br />
<br />Extrait :<br /><br />un texte ponctué par des </ br></div>
<div class="Style161" align="center">un autre texte</div>

remplacer par
<div class="Style145" id="Layer70" align="justify">
<div class="Style161" align="center">un autre texte</div><br />
<br />Extrait :<br /><br />un texte pontué par des </ br></div>

Car quand je fais
recherche
<div class="Style145" id="Layer70" align="justify"><br />
<br />Extrait :<br /><br />(.*)</div>
<div class="Style161" align="center">(.*)</div>

remplacer par
<div class="Style145" id="Layer70" align="justify">
<div class="Style161" align="center">$2</div><br />
<br />Extrait :<br /><br />$1</div>

Il ne trouve rien .. ?

Merci pour votre aide

Paul
 
Nouveau WRInaute
re bonjour

Je ré-itère ma demande en la reformulant
Dans mon code source de toutes mes pages HTML j'ai ceci

<div class="Style145" id="Layer70" align="justify">
<br /><br />Extrait :<br /><br />
Texte1</div>
<div class="Style161" align="center">Texte2</div>

J'aimerai transformer ceci en (en gros inverser l'ordre des 2 textes) :

<div class="Style145" id="Layer70" align="justify">
<div class="Style161" align="center">texte2</div>
<br /><br />Extrait :<br /><br />
texte1</div>

Pour ce faire j'utilise la fonction de Dreamweaver : rechercher/remplacer, mais ça ne marche pas (même en cochant expression régulière)

Je mets dans le cadre recherche ceci
<div class="Style145" id="Layer70" align="justify">
<br /><br />Extrait :<br /><br />
(.+)</div>
<div class="Style161" align="center">(.+)</div>

et dans le cadre remplacer
<div class="Style145" id="Layer70" align="justify">
<div class="Style161" align="center">$2</div>
<br /><br />Extrait :<br /><br />
$1</div>

Et il me dit nada, rien ...
Quelle expression dois-je utiliser ?

Merci

Paul
 
WRInaute accro
Si c'est comme avec eclipse quand tu sélectionne la zone de code a chercher et qu'elle contiens des caractères spéciaux comme des retours a la ligne ça ne marche pas.
En revanche si tu copie la zone a chercher (Ctrl + C) et que tu ouvre le module de recherche en collant le code dans le champ adéquate ça fonctionne.
Si en revanche tu coche la coche "expression régulière", il faut transformer ce que tu cherche avec les caractères qui vont bien genre \n pour les retours a la ligne \t pour les tabulation etc ...
 
Nouveau WRInaute
Merci Zeb pour ta réponse

J'ai réussi à transformer (rechercher/remplacer) quelques pages correctement en utilisant dans Dream l'expression

(.*\n*) dans la case recherche

Mais pour les autres pages la recherche/remplacer ne donne rien car elle bute sur les <br /> de mes textes

comment les ignorer ?

J'ai essayé (.*\n*\t*\r*) mais ça ne marche pas

Paul
 
Nouveau WRInaute
C'est bon j'ai trouvé

l'expression régulière à utiliser est bien (.*\n*) en n'oubliant pas d'utiliser $1 et $2;
Les erreurs venaient simplement des retour ligne dans le code source que j'ai donc éliminé.

Merci à tous
 
Nouveau WRInaute
bonjour POINTDV,
j'ai le même besoin que toi, et le même souci avec les retours chariot !
comment détecter un code du genre ?
<div>
<h3>
toto
</h3>
</div>

j'arrive à détecter et remplacer <div><h3>toto</h3></div> MAIS PAS quand il y a des retours chariot comme je le présente en premier. COMMENT AS TU FAIS ? Merci

en clair, j'aimerais détecter <div> ... n'importe quoi incluant des espaces et des retours chariots... </div> et le remplacer par <div>toto</div>
 
WRInaute accro
attention les retours à la ligne ne sont pas toujours les mêmes en fonction des OS \n pour certains \r\n pour d'autres.
 
Nouveau WRInaute
apparemment c'est pas une histoire de \n ni \r etc ... pour que les expressions regulieres marchent, il ne faut pas de saut de ligne, il faut que tout soit à la queue leu leu , avec ou sans espaces, mais PAS DE SAUTS DE LIGNES. j'arrive pas à prendre en compte ces fichus sauts de ligne ...
comment faire concretement, QUOI ECRIRE dans le champs de recherche de dreamweaver avec expression regulière ?
merci
 
WRInaute accro
michel vernet a dit:
apparemment c'est pas une histoire de \n ni \r
bah c'est \n ou \r\n (voir l'inverse a vérifier c'est propre a windows et j'ai pas sous la main) pas \r, mais il y a pas que ça il y a aussi les tabulations (\t) etc ... Il faut parfois escaper avec un anti-slash certains caractère parfois. etc ...
La bonne technique quand on est pas bon la dedans c'est de rechercher au fur et a mesure. Tu commence par les caractères en dur et tu ajoute au fur et a mesure les caractère suivants y compris les spéciaux. si la recherche passe tu continu si ça passe pas tu te triture le cortex.
 
Nouveau WRInaute
bonjour,
j'ai enfin trouvé quelquechose, mais je dois trouver une amélioration.
Par exemple, ce code permet de tout remplacer entre <TD width=100% valign="top"> et <?php } ?>
en incluant les espaces et les sauts de ligne :
<TD width=100% valign="top">[^>]*>(.|\r\n)*<?php \}\?>

MAIS mon souci est qu'il remplace TOUT jusqu'au DERNIER <?php }?> . J'aimerais qu'il remplace tout jusqu'au 1er <?php }?> et qu'il s'arrête là. J'ai essayé de remplacer les * par des ? par exemple, ou des {1}, mais ça ne marche pas. Quelqu'un pourrait me dire ce que je dois remplacer pour que cette expression s'arrête au premier <?php }?>
MERCI
 
Discussions similaires
Haut