繁体   English   中英

使用preg_replace转换字符串

[英]Converting a string using preg_replace

我有一个看起来像这样的字符串

<a href="/team.php?team_id=521">@Arsenal Fc</a> and <a href="/profile.php?fid=50683">@Tester Alpha</a>

我需要将其转换为

'#ArsenalFc和Tester Alpha'

要记住的三件事。

1)链接到team.php页面,@转换为#

2)对于指向team.php页面的链接,删除了字符串空间(Arsenal Fc到ArsenalFc)

3)对于profile.php页面的链接,@被删除

有想法可以做到这一点吗?

这对我有用

function myPregCallback($res)
{
    return '#'.str_replace(' ','',$res[1]);
}
$str = '<a href="/team.php?team_id=521">@Arsenal Fc</a> and <a href="/profile.php?fid=50683">@Tester Alpha</a>';
$newStr = preg_replace_callback('#^.+"/team\.php[^>]+>@?([^<]+)</a>#','myPregCallback',$str);
$newStr = preg_replace('#<a.+?"/profile\.php.+?>@?([^<]+)</a>#','$1',$newStr);
var_dump($newStr); //string(27) "#ArsenalFc and Tester Alpha" 

如果不需要显式检查“ team.php”和“ profile.php”,这当然会更简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM