2

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

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

我打算删除最后一个正斜杠并将其替换为其他内容。我想我可以使用preg_replace,但我找不到正确的模式。

4

2 回答 2

5

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

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

也可以:

$public_url = rtrim($public_url, '/').'replace it!';
于 2013-01-27T10:22:13.633 回答
5

您可以使用否定的后备表达式:

<?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);

最后一个斜线后面的所有字符也被替换。感谢针织!

于 2013-01-27T10:22:46.663 回答