使用PHP进行正则表达式字符串替换和拆分

时间:2016-07-30 05:09:20

标签: php regex string string-formatting

我在PHP中有一个示例字符串:

$var = 'lurm limsrh domw en wonf src="@storage//user1/path/file.txt" and any lorm lipsm tjp quor it src="@storage//user2/path/file.txt" utt fine @storage// no chnge';

我想使用 PHP

进行以下操作
  1. 仅将 src ="" 内的 @storage // 替换为 http://mydomain/folder/
  2. 将所有用户替换为md5(用户);.用户名必须在 @storage // 之后,即它出现在' @storage //' next' /之间' 。也只替换 src =""
  3. 内的那些

    我可以使用哪种正则表达式?

1 个答案:

答案 0 :(得分:1)

$url = 'http://mydomain/folder/';
$var = preg_replace_callback('/(.*?\bsrc)\s*=\s*"\s*@storage\/\/([^\/]+)([^"]+?)\s*"/s', function($matches) use ($url) {
    return $matches[1] . '="' . $url . md5($matches[2]) . $matches[3] . '"';
}, $var);

抱歉,无法测试,但应该是正确的。