使用Regex替换url路径

时间:2009-02-08 15:34:43

标签: regex

如何更改此图片的网址:

http://www.myOLDwebsite.com/ **********。***(我有GIF,jpgs,pngs)

到此:

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

使用REGexp文本编辑器?

非常感谢你的时间

[]的

马特乌斯

3 个答案:

答案 0 :(得分:4)

为什么要使用正则表达式?

使用传统方法,替换:

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?这不是必要的吗?

答案 1 :(得分:2)

嗯,最简单的方法可能就是在就地模式下使用sed:

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

如果由于某种原因你需要实际解释HTML(而不仅仅是做一个简单的字符串替换),围绕BeautifulSoup构建的快速脚本会更安全 - 许多人尝试做HTML或通过正则表达式进行XML解析,但是如果不是不可能覆盖所有极端情况那么非常困难。

所有这一切都说,如果您使用相对链接,不要让您的HTML依赖于它托管的服务器,那就更好了。另请参阅<BASE HREF="...">中的<HEAD>元素,以指定所有网址相对的位置;如果你使用它,你只需要做一次替换。

答案 2 :(得分:0)

如果您正在尝试学习正则表达式,可以尝试使用The Regex Coach