php用于执行此替换

php用于执行此替换,php,regex,Php,Regex,我的数据库行中有此数据,我想用42/05/47/6此整数替换4205476整数。我可以使用preg match提取所有数字,但我还是不知道如何实现这一点 这是mysql的一行,如果图像后的所有数字都被替换,它看起来会像这样,请参见下一行 Mario Ermito照片由sample.com提供Mario Ermito最新新闻、照片、传记、视频和壁纸[img]http://xyz.sample.com/image/4205476/600full-mario-ermito.jpg[/img][img]

我的数据库行中有此数据,我想用42/05/47/6此整数替换4205476整数。我可以使用preg match提取所有数字,但我还是不知道如何实现这一点 这是mysql的一行,如果图像后的所有数字都被替换,它看起来会像这样,请参见下一行

Mario Ermito照片由sample.com提供Mario Ermito最新新闻、照片、传记、视频和壁纸[img]http://xyz.sample.com/image/4205476/600full-mario-ermito.jpg[/img][img]http://xyz.sample.com/image/4453948/600full-my-profile.jpg[/img][img]http://xyz.sample.com/image/427185/600full-eagle-eye-poster.jpg[/img][img]http://xyz.sample.com/image/1323868/600full-alexis-bledel.jpg[/img][img]http://xyz.sample.com/image/2505314/600full-monroe-lee.jpg[/img][img]http://xyz.sample.com/image/3300481/600full-cindy-crawford.jpg[/img][img]http://xyz.sample.com/image/1046646/600full-pitura-freska.jpg[/img][img]http://xyz.sample.com/image/4322305/600full-kristin-kreuk.jpg[/img][img]http://xyz.sample.com/image/4261476/600full-kang-so-ra.jpg[/img][img]http://xyz.sample.com/image/3386911/600full-summer-brielle.jpg[/img][img]http://xyz.sample.com/image/4663949/600full-the-closer-artwork.jpg[/img]

更换后会像这样

Mario Ermito照片由sample.com提供Mario Ermito最新新闻、照片、传记、视频和壁纸[img]http://xyz.sample.com/image/42/05/47/6/600full-mario-ermito.jpg[/img][img]http://xyz.sample.com/image/44/53/94/8/600full-my-profile.jpg[/img][img]http://xyz.sample.com/image/42/71/85/600full-eagle-eye-poster.jpg[/img][img]http://xyz.sample.com/image/13/23/86/8/600full-alexis-bledel.jpg[/img][img]http://xyz.sample.com/image/25/05/31/4/600full-monroe-lee.jpg[/img][img]http://xyz.sample.com/image/33/00/48/1/600full-cindy-crawford.jpg[/img][img]http://xyz.sample.com/image/10/46/64/6/600full-pitura-freska.jpg[/img][img]http://xyz.sample.com/image/43/22/30/5/600full-kristin-kreuk.jpg[/img][img]http://xyz.sample.com/image/42/61/47/6/600full-kang-so-ra.jpg[/img][img]http://xyz.sample.com/image/33/86/91/1/600full-summer-brielle.jpg[/img][img]http://xyz.sample.com/image/46/63/94/9/600full-the-closer-artwork.jpg[/img]

我试着从这个输入中提取数字,我可以用这个模式来做,但下一步怎么办?非常困惑。首先想到了用字符串相加,但无法决定如何实现

 ~\/\image\/(.*?)\/~
看看这个:

工作示例:

说明:

正则表达式以开头,您可以使用wordwrap和array\u walk

输出:

Mario Ermito照片由sample.com提供Mario Ermito最新新闻、照片、传记、视频和壁纸 [img]http://xyz.sample.com/image/42/05/47/6/600full-mario-ermito.jpg[/img][img]http://xyz.sample.com/image/44/53/94/8/600full-my-profile.jpg[/img][img]http://xyz.sample.com/image/42/71/85/600full-eagle-eye-poster.jpg[/img][img]http://xyz.sample.com/image/13/23/86/8/600full-alexis-bledel.jpg[/img][img]http://xyz.sample.com/image/25/05/31/4/600full-monroe-lee.jpg[/img][img]http://xyz.sample.com/image/33/00/48/1/600full-cindy-crawford.jpg[/img][img]http://xyz.sample.com/image/10/46/64/6/600full-pitura-freska.jpg[/img][img]http://xyz.sample.com/image/43/22/30/5/600full-kristin-kreuk.jpg[/img][img]http://xyz.sample.com/image/42/61/47/6/600full-kang-so-ra.jpg[/img][img]http://xyz.sample.com/image/33/86/91/1/600full-summer-brielle.jpg[/img][img]http://xyz.sample.com/image/46/63/94/9/600full-the-closer-artwork.jpg[/img]

是怎么做到的?
首先使用preg_match_all并获取所有这些数字并将其保存在一个单独的数组中,现在使用array_walk以斜杠拆分字符串,最后对原始字符串进行简单的str_替换。

这看起来像是文字替换,所以会起作用……您能告诉我如何从字符串中提取数字吗?一行mysql?mysql正则表达式只执行匹配。它们不能进行替换。@GauravParashar preg match all~\/\image\/.*?\/~太棒了,但请您解释一下您是如何做到的this@sachin我更深入地介绍了正则表达式的工作原理以及如何在PHP中使用它。它失败了6位数字,请参阅您的输出的第三行您是master。我也是c亨奈将不得不在gmail上有一个像u.bydbest一样的frnd
(?<=image/)(\d{2})(\d{2})(\d{2})(\d)(?=/)
$string = 'http://xyz.sample.com/image/4205476/600full-mario-ermito.jpg';
$regex = '~(?<=image/)(\d{2})(\d{2})(\d{2})(\d)(?=/)~';

$string = preg_replace($regex, '$1/$2/$3/$4', $string);
echo $string; // http://xyz.sample.com/image/42/05/47/6/600full-mario-ermito.jpg
preg_replace('~(?<=image/)(\d{2})(\d{2})(\d{2})(\d)(?=/)~', '$1/$2/$3/$4', $string);
<?php
$str='     Mario Ermito photos by sample.com Mario Ermito Latest News, Photos, Biography, Videos and Wallpapers [img]http://xyz.sample.com/image/4205476/600full-mario-ermito.jpg[/img][img]http://xyz.sample.com/image/4453948/600full-my-profile.jpg[/img][img]http://xyz.sample.com/image/427185/600full-eagle-eye-poster.jpg[/img][img]http://xyz.sample.com/image/1323868/600full-alexis-bledel.jpg[/img][img]http://xyz.sample.com/image/2505314/600full-monroe-lee.jpg[/img][img]http://xyz.sample.com/image/3300481/600full-cindy-crawford.jpg[/img][img]http://xyz.sample.com/image/1046646/600full-pitura-freska.jpg[/img][img]http://xyz.sample.com/image/4322305/600full-kristin-kreuk.jpg[/img][img]http://xyz.sample.com/image/4261476/600full-kang-so--ra.jpg[/img][img]http://xyz.sample.com/image/3386911/600full-summer-brielle.jpg[/img][img]http://xyz.sample.com/image/4663949/600full-the-closer-artwork.jpg[/img]';
preg_match_all('~\/\image\/(.*?)\/~', $str, $matches); echo "<pre>";
$matchesarray = $matches[1];
array_walk($matches[1],function (&$v){ $v = wordwrap($v, 2, "/", true);});
$replacearray = $matches[1];

$str = str_replace($matchesarray,$replacearray,$str);
echo $str;