我已导入所有wordpress内容,现在我想用占位符图像替换所有图像。我认为最明显的方法是搜索和替换所有图像。我尝试手动完成,但文件很大,让我重新思考这个。
这是wordpress导出的XML文件的示例:https://wpcom-themes.svn.automattic.com/demo/theme-unit-test-data.xml
我想用placehold.it url(http://placehold.it/)替换所有图片网址
我正在使用sublime文本编辑器,是否有任何正则表达式搜索XML文件上的所有图像URL?我对正则表达式真的不太好..
提前致谢!
答案 0 :(得分:2)
使用一些占位符文本替换所有图像src
属性的简单正则表达式将是:
搜索:
<img (.*?)src=".*?"
替换为:
<img $1src="http://example.com"
如果您想使用占位符网址,可以执行以下操作:
<img (.*?)src=".*?"(.*?)width="(\d+)" height="(\d+)"
替换为:
<img $1src="http://placehold.it/$3x$4"$2width="$3" height="$4"
说明:
.*?
表示0个或更多字符\d+
表示1个或多个数字 (
和)
捕获括号内容,并将其保存到$1
,$2
,$3
等。
<img (.*?)src
捕获<img
和src
之间的所有字符,并将其保存在$1
中 - 所以如果有类属性,ID,就像那 - 它将保存为$1
。 .*?
也可以不匹配,因此$1
也可以为空。
width="(\d+)"
捕获提供图片宽度的数字,并将其保存到$3
(因为它是该正则表达式中的第三组括号)。答案 1 :(得分:1)
正则表达式:
(\<img\s+.*?src\s*=\s*)(?|"(.*?)"|\'(.*?)\')(.*?\/?\>)
替换:
$1"http://placehold.it/"$3
如果您的编辑器支持正则表达式搜索和替换,那么请使用上面的内容,否则使用PHP:
$string = preg_replace( '/(\<img\s+.*?src\s*=\s*)(?|"(.*?)"|\'(.*?)\')(.*?\/?\>)/is', '$1"http://placehold.it/"$3', $string );