preg_replace来制作Twitter ID

时间:2014-09-11 04:34:16

标签: php preg-replace

我想用@。

替换我的字符串中的http://https://
eg: $twitter_id = 'http://abcuser';

我想要的结果是' @ abcuser'

我正在尝试的是

$twitter_id = 'http://abcuser';
$match = '/http:/';
$replace = '@';
$new_id = preg_replace($match, $replace, $twitter_id);
echo 'Tweet ID:'.$new_id;

但没有得到任何正确的结果。 请帮助。

2 个答案:

答案 0 :(得分:1)

No need for regex在这里,使用str_replace()

$new_id = str_replace(array('http', 'https'), '@', $twitter_id);
echo 'Tweet ID' . $new_id; // @abcuser

如果 决定在此处使用regex,您可以像这样实现:

$pattern = '/(?:http|https):\/\//';
$replace = '@';
$new_id = preg_replace($pattern, $replace, $twitter_id);

(?:http|https)是一个匹配http或https的非捕获组,然后匹配冒号和两个斜杠(转义它们,除非你使用不同的模式分隔符)。

您也可以考虑上述两者的不区分大小写的选项,例如: str_ireplace()/pattern/i(正则表达式修饰符)

答案 1 :(得分:1)

如果您不介意,在这种情况下您也可以使用str_replace

$twitter_id = 'http://abcuser';
$needles = array('http://', 'https://');
$new_id = str_replace($needles, '@', $twitter_id);
// or use a simple regex
// $new_id = preg_replace('/(http|https)\:\/\//', '@', $twitter_id);
echo $new_id;