替换字符串php中的最后一个斜杠

时间:2013-01-27 10:16:49

标签: php preg-replace

我很难绕过正则表达式而我正在尝试删除字符串中的最后一个正斜杠:

$public_url = "https://api.mongohq.com/";

我打算删除最后一个正斜杠并用其他东西替换它。我想我可以使用preg_replace,但我找不到合适的模式。

2 个答案:

答案 0 :(得分:5)

您可以使用负面的lookafter-expression:

<?php
$public_url = "https://api.mongohq.com/";
$replace = "foobar";

echo preg_replace("~\/(?!.*\/)~", $replace, $public_url);
?>

输出:
    https://api.mongohq.comfoobar

<强>更新
使用以下正则表达式可以避免最后一个斜杠后面的字符出现问题:

echo preg_replace("~\/(?!.*\/)(.*)~", $replace, $public_url);

最后一个斜杠后面的所有字符也会被替换。感谢knittl!

答案 1 :(得分:4)

$在字符串末尾锚定正则表达式模式:

$public_url = preg_replace('#/$#', 'replace it!', $public_url);

也可能:

$public_url = rtrim($public_url, '/').'replace it!';