以下是我的代码,使用标记替换所有提及的各自的个人资料链接。
现在我需要从这个字符串中删除特定的提及。
说我有字符串"你们好几个人??? ... @@ [Sam Thomas:10181] @@ [Jack Daniel:11074]"
现在我想从这个字符串中删除@@ [Sam Thomas:10181],使用他的id,这将是唯一的一个,即10181 ..任何正则表达式,使用上面指定的id识别整个模式。
echo 'USER TAG NAME WITH PROFILE LINK<br/><hr>';
$text = "hi how are you guys???... @@[Sam Thomas:10181] @@[Jack Daniel:11074] @@[Paul Walker:11043] ";
echo 'REGULAR EXPRESSION USED: <b>/@@\[([^:]*):(\d*)\]/</b>';
echo '<br/>Sample Text<br/>';
echo $text.'<br/>';
$pattern = "/@@\[([^:]*):(\d*)\]/";
$matches = array();
preg_match_all($pattern, $text, $matches);
echo '<pre>';
print_r($matches);
echo '</pre>';
echo '<hr>';
$output = preg_replace($pattern, "<a href=\"http://localhost/$2\" class=\"tooltip\">$1</a>", $text);
echo 'FINAL OUTPUT<br/><hr>';
echo $output;
echo '<br/>==================================================================================<br/>';
答案 0 :(得分:1)
\d*
匹配任何数字 - 如果您想将匹配限制为特定数字,请将其替换为该数字:
$pattern = "/@@\[([^:]*):(10181)\]/";
如果您希望数字有所不同,可以使用alternation:
$pattern = "/@@\[([^:]*):(10181|11074)\]/";