Page 1 sur 1
[..] StringRegExpReplace compliqué...
Posté : ven. 27 déc. 2013 15:21
par Utilisateur 3309 supprimé
Bonjour,
j'ai une page web avec plusieurs lignes comme ca:
fichier 120.pdf
fichier 131.pdf
fichier 142.pdf
fichier 150.pdf
etc..
je voudrais faire un
StringRegExpReplace qui va me remplacer toutes ces lignes par
<a href="fichier 120.pdf">fichier 120.pdf</a>
<a href="fichier 131.pdf">fichier 131.pdf</a>
<a href="fichier 142.pdf">fichier 142.pdf</a>
<a href="fichier 150.pdf">fichier 150.pdf</a>
etc..
Je suis coincé car tout ce que j'arrive a faire c'est mettre le meme nom de fichier partout, alors que le nombre lui est dynamique...
StringRegExpReplace($Value, "fichier (.*)\.pdf", "<a href="fichier 120.pdf">fichier 120.pdf</a>")
j'imagine qu'il faut utiliser le le back-reference, comme indiqué dans la doc, mais je n'ai pas bien compris.
To insert matched group text, \0 - \9 (or $0 - $9) can be used as back-references.
Merci pour votre aide.
Re: [..] StringRegExpReplace compliqué...
Posté : ven. 27 déc. 2013 15:23
par Utilisateur 3309 supprimé
mouhhahaah chui trop fort
en remplaçant
120 par
$1 ca marche
Vraiment puissant Autoit

Re: [..] StringRegExpReplace compliqué...
Posté : ven. 27 déc. 2013 15:26
par jguinch
Impec !
Sinon, tu peux faire comme ça :
Code : Tout sélectionner
$lines = "fichier 120.pdf" & @CRLF & "fichier 131.pdf" & @CRLF & "fichier 142.pdf" & @CRLF & "fichier 150.pdf"
$replace = StringRegExpReplace($lines, "(?m)^(.*)$", "<a href=""$1"">$1</a>")
MsgBox(0, "", $replace)
Re: [..] StringRegExpReplace compliqué...
Posté : ven. 27 déc. 2013 15:45
par Utilisateur 3309 supprimé
Ha merci !
Par contre je suis embêté, j'ai simplifié le problème pour le présenter ici mais en fait comme c'est une page web j'ai des " et ' dans mon pattern de recherche et du coup le StringRegExpReplace me fait un message d'erreur a cause de ca...
comment je peux éviter le probleme ?
Re: [..] StringRegExpReplace compliqué...
Posté : ven. 27 déc. 2013 15:54
par jguinch
Tu nous mettrais pas un petit exemple ?
Re: [..] StringRegExpReplace compliqué...
Posté : ven. 27 déc. 2013 16:25
par Utilisateur 3309 supprimé
ben voila de quoi je pars:
<a href="javascript:;" title="nom de fichier" onclick="PopUpShow_2('120', false);">blablabla</a>
<a href="javascript:;" title="nom de fichier" onclick="PopUpShow_2('131', false);">blablabla</a>
<a href="javascript:;" title="nom de fichier" onclick="PopUpShow_2('142', false);">blablabla</a>
<a href="javascript:;" title="nom de fichier" onclick="PopUpShow_2('150', false);">blablabla</a>
et voilà vers quoi je vais:
<a href="fichier 120.pdf">fichier 120.pdf</a>
<a href="fichier 131.pdf">fichier 131.pdf</a>
<a href="fichier 142.pdf">fichier 142.pdf</a>
<a href="fichier 150.pdf">fichier 150.pdf</a>
Dans la page web, il y a d'autres liens qu'il ne faut pas toucher, du genre:
<a href="javascript:;" style="font-size: larger; font-weight: bold;" onclick="PopUpTrailer_2('120');">
donc j'ai fait mon regex comme ca:
StringRegExpReplace($Value, "href="javascript:;" title="(.*)" onclick="PopUpDhow_2\('(.*)', false\);">blablabla", " href="fichier $1.pdf">fichier $1.pdf")
Mais bien entendu a cause des " et ' de partout, ca fait foirer le code...
Re: [..] StringRegExpReplace compliqué...
Posté : ven. 27 déc. 2013 18:00
par Utilisateur 3309 supprimé
oups, si je double les
" je n'ai plus d'erreur
Edit:
plus d'erreur mais le Regex n'accompli plus sa tache...
j'utilise le PCRE Toolkit pour tester.
http://autoit.mvps.org/
Re: [..] StringRegExpReplace compliqué...
Posté : ven. 27 déc. 2013 18:26
par mikell
► Afficher le texte
Code : Tout sélectionner
#include <IE.au3>
$str = '<a href="javascript' & ":" & ';" title="nom de fichier" onclick="PopUpShow_2(' & "'120'" & ', false);">blablabla</a>' &@crlf& _
'<a href="javascript' & ":" & ';" title="nom de fichier" onclick="PopUpShow_2(' & "'131'" & ', false);">blablabla</a>' &@crlf& _
'<a href="javascript' & ":" & ';" title="nom de fichier" onclick="PopUpShow_2(' & "'142'" & ', false);">blablabla</a>' &@crlf& _
'<a href="javascript' & ":" & ';" style="font-size: larger; font-weight: bold;" onclick="PopUpTrailer_2(' & "'120'" & ');">' &@crlf& _
'<a href="javascript' & ":" & ';" title="nom de fichier" onclick="PopUpShow_2(' & "'150'" & ', false);">blablabla</a>'
;msgbox(0,"avant", $str)
$res = StringRegExpReplace($str, '(?s)(?<=href=").+?PopUpShow_2\(''([^'']+).+?/a>', _
'fichier $1.pdf">fichier $1.pdf</a><br>')
;msgbox(0,"après", $res)
$oIE = _IECreateEmbedded ()
GUICreate("test", 300, 300)
GUICtrlCreateObj($oIE, 10, 10, 280, 280)
GUISetState()
_IENavigate($oIE, "about" & ":" & "blank")
_IEDocWriteHTML($oIE, $res)
_IEAction($oIE, "refresh")
while GuiGetMsg()<>-3
wend
Re: [..] StringRegExpReplace compliqué...
Posté : ven. 27 déc. 2013 18:35
par Utilisateur 3309 supprimé
heuu....attend je vais chercher une boite de doliprane 1000

et je reviens...