заменить пути URL с помощью Regex - PullRequest
0 голосов
/ 08 февраля 2009

Как мне изменить URL-адрес моих изображений из этого:

http://www.myOLDwebsite.com/**********.*** (у меня есть картинки, jpgs, pngs)

к этому:

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

Используете текстовый редактор REGexp?

Действительно спасибо за ваше время

[] s

Матеуш

Ответы [ 3 ]

4 голосов
/ 08 февраля 2009

Зачем использовать регулярные выражения?

Используя обычные средства, заменить:

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

с:

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

Конечно, предполагается, что ваши теги изображений всегда следуют шаблону 'src="<url>"', с двойными кавычками и всем.

Использование регулярных выражений, конечно, также возможно. Заменить это:

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

с:

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

альтернативно, если ваш текстовый редактор использует $ для обратной ссылки:

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

Если подумать - почему у ваших изображений вообще есть абсолютные URL? Разве это не нужно?

2 голосов
/ 08 февраля 2009

Ну, возможно, самый простой способ - использовать sed в режиме на месте:

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

Если по какой-то причине вам нужно интерпретировать HTML (а не просто заменить строку), быстрый сценарий, построенный на BeautifulSoup , будет безопаснее - многие люди попытаются это сделать. Разбор HTML или XML с помощью регулярных выражений, но очень сложно, если не невозможно, охватить все угловые случаи.

При всем этом было бы лучше, если бы вы использовали относительные ссылки, чтобы ваш HTML не зависел от сервера, на котором он размещен. См. Также элемент <BASE HREF="...">, который вы можете вставить в <HEAD>, чтобы указать местоположение, к которому относятся все URL; если вы используете это, вам нужно будет сделать только одну замену.

0 голосов
/ 08 февраля 2009

Если вы пытаетесь изучать регулярные выражения, вы можете попробовать The Regex Coach .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...