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

Regex String Replacement and Split using PHP

我在 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. 仅将 @storage// 替换为 src=""http://mydomain/folder/
  2. 将所有用户替换为 md5(user);。用户名必须在 @storage// 之后,即它在 '@storage//' 下一个 '/' 之间。也只替换 src=""
  3. 里面的那些

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

$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);

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