正規表現のヘルプ

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 13:33:50965ブラウズ

[#微笑][#大哭][#色] 如果通过preg_replace() 变成d63a361264d471a3c1801e8730a7e594afd78172df9992f1000d92680b4e250df346ef47b95e834b0cfd88233b3e687d


回复讨论(解决方案)

$str='[#微笑][#大哭][#色]';preg_match_all('/\[#(.+?)\]/',$str,$m);echo '<img src="'.$m[1][0].'.jpg"/><img src="'.$m[1][1].'.jpg"/><img src="'.$m[1][2].'.jpg"/>';

我的$str里面的表情数量是不定的,而且还会有其他非表情的字符

如:$str=我来啦!![#微笑][#微笑]么么~~[#色] 变成:我来啦!!d63a361264d471a3c1801e8730a7e594d63a361264d471a3c1801e8730a7e594么么~~f346ef47b95e834b0cfd88233b3e687d

网上看了个例子:$str = preg_replace ( "[\[#([0-9]*)\]]", "54234e35a5209838d4aac8d14f9ff8a2", $str );
但是这个只能替换[#1][#22]这种 如果是中文的 要怎么改呢?正则一点都不懂啊

$str='af d [#微笑]adfaf[#大哭]asdfasd[#色]asdfaf';$new = preg_replace('/\[\#(.+?)\]/', "<img src='$1.jpg'/>", $str);var_dump($new);

$str='af d [#微笑]adfaf[#大哭]asdfasd[#色]asdfaf';$new = preg_replace('/\[\#(.+?)\]/', "<img src='$1.jpg'/>", $str);var_dump($new);



这个可以!感谢!!

$str = "[#微笑][#大哭][#色]";
$pattern = "/\[#([\s\S]*)\]\s*\[#([\s\S]*)\]\s*\[#([\s\S]*)\]\s*/";
preg_match_all($pattern,$str,$match);
$new_str = preg_replace($pattern,'d3296e4e805acb60f17cb71f027a0aaaee0a137a89f1ae8c8c1d514717f1320cc3ba18aa287fda2e16f1f6872aaedb33',$str);
echo $new_str;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。