2009-02-08 4 views
0

Comment puis-je changer l'url de mes images de cette:.remplacer les chemins d'URL à l'aide Regex

http://www.myOLDwebsite.com/ ********** *** (j'ai gifs, jpgs, PNGs)

à ceci:

http://www.myNEWwebiste.com/somedirectory/ ********** ***

en utilisant un éditeur de texte regExp.?

Vraiment merci pour votre temps

[] 's

Mateus

+0

Les détails de la plate-forme aiderait – AnthonyWJones

+0

txt, j'ai une énorme liste d'images sur la racine de cette URL .. pour ce nouveau site, je dois déplacer les images vers un nouveau dossier, mais les dossiers sont les mêmes .. /www.myOLDwebsite.com/test/ sera http: //www.myNEWwebsite.com/test /, merci –

Répondre

2

Eh bien, la façon la plus simple est probablement d'utiliser sed en mode en place:

sed -ir \ 
'[email protected]://www[.]myOLDwebsite[.]com/@http://www.myNEWwebsite.com/subdirectory/@g' \ 
file1 file2 ... 

Si pour une raison quelconque, vous devez réellement interpréter le HTML (plutôt que de simplement faire un remplacement de chaîne simple), un script rapide construit autour de BeautifulSoup va être plus sûr - Beaucoup de gens essaient de faire du parsing HTML ou XML via des expressions régulières, mais il est très difficile, voire impossible, de couvrir tous les cas. Cela dit, il vaudrait mieux que vous utilisiez des liens relatifs pour que votre HTML ne dépende pas du serveur sur lequel il est hébergé. Voir aussi l'élément <BASE HREF="..."> que vous pouvez mettre dans votre <HEAD> pour spécifier un emplacement auquel toutes les URL sont relatives; Si vous l'utilisiez, il vous suffirait de faire un seul remplacement.

+1

Ne pas oublier d'échapper les points et fermer le delemiter après la substitution. – Gumbo

+0

Juste "\." Serait également bien. – Gumbo

+0

merci mec, mais j'ai un long txt seulement ... pas de balises, php, perl ou python, juste un txt géant avec des images à la racine ... –

4

Pourquoi utiliser regex?

utilisant des moyens classiques, remplacer:

src="http://www.myOLDwebsite.com/

avec:

src="http://www.myNEWwebiste.com/somedirectory/

Certes, cela suppose que vos balises d'image suivent toujours le modèle 'src="<url>"', avec des guillemets doubles et tout.

L'utilisation de regex est bien sûr également possible. Remplacer ceci:

(src\s*=\s*["'])http://www\.myOLDwebsite\.com/

avec:

\1http://www.myNEWwebiste.com/somedirectory/

alternativement, si votre éditeur de texte utilise $ pour marquer retour références:

$1http://www.myNEWwebiste.com/somedirectory/

à la réflexion - pourquoi vos images ont absolue URL en premier lieu? N'est-ce pas inutile?

+0

hey mec .. parce que j'ai des dossiers suivant ce chemin .. mais je vouloir déplacer seulement les images à un nouvel emplacement, et tout mon code est sur un txt sans balises html ...;) –

+0

mais merci quand même! –

+0

Pourquoi "quand même"? Je ne vois pas où cette réponse ne ferait * pas * ce que vous avez l'intention de faire. Avez-vous réellement essayé? – Tomalak

0

Si vous essayez d'apprendre des expressions régulières, vous pouvez essayer d'utiliser The Regex Coach.