我一直在阅读RegEx文档,但我必须说我仍然有点偏离我的元素,所以我为没有发布我尝试过的内容而道歉,因为这一切都是完全错误的。
这是问题所在:
我使用以下来源获得了图片:
src="http://samplesite/.a/6a015433877b2b970c01a3fd22309b970b-800wi"
我需要做到这一点:
src="http://newsite.com/wp-content/uploads/2014/07/6a015433877b2b970c01a3fd22309b970b-800wi.jpg"
基本上从URL中删除/.a/并将.jpg附加到图像文件名的末尾。如果它有助于解决方案我使用此插件:http://urbangiraffe.com/plugins/search-regex/
全部谢谢。
答案 0 :(得分:2)
这可能会对你有帮助。
(?<=src="http:\/\/)samplesite\/\.a\/([^"]*)
示例代码:
$re = "/(?<=src=\"http:\/\/)samplesite\/\.a\/([^\"]*)/";
$str = "src=\"http://samplesite/.a/6a015433877b2b970c01a3fd22309b970b-800wi\"";
$subst = 'newsite.com/wp-content/uploads/2014/07/$1.jpg';
$result = preg_replace($re, $subst, $str);
输出:
src="http://newsite.com/wp-content/uploads/2014/07/6a015433877b2b970c01a3fd22309b970b-800wi.jpg"
模式描述:
(?<= look behind to see if there is:
src="http: 'src="http:'
\/ '/'
\/ '/'
) end of look-behind
samplesite 'samplesite'
\/ '/'
\. '.'
a 'a'
\/ '/'
( group and capture to \1:
[^"]* any character except: '"' (0 or more
times (matching the most amount
possible))
) end of \1
您可以在不使用 Positive Lookbehind 的情况下尝试
(src="http:\/\/)samplesite\/\.a\/([^"]*)
示例代码:
$re = "/(src=\"http:\/\/)samplesite\/\.a\/([^\"]*)/";
$str = "src=\"http://samplesite/.a/6a015433877b2b970c01a3fd22309b970b-800wi\"";
$subst = '$1newsite.com/wp-content/uploads/2014/07/$2.jpg';
$result = preg_replace($re, $subst, $str);
答案 1 :(得分:0)
您可以使用:
$replaced = preg_replace('~src="http://samplesite/\.a/([^"]+)"~',
'src="http://newsite.com/wp-content/uploads/2014/07/\1.jpg"',
$yourstring);
<强>解释强>
([^"]+)
匹配任何非"
到第1组\1
在替换中插入第1组。