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

Rol*_*and 2 php preg-replace

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

$public_url = "https://api.mongohq.com/";
Run Code Online (Sandbox Code Playgroud)

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

kni*_*ttl 5

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

$public_url = preg_replace('#/$#', 'replace it!', $public_url);
Run Code Online (Sandbox Code Playgroud)

也可以:

$public_url = rtrim($public_url, '/').'replace it!';
Run Code Online (Sandbox Code Playgroud)


Fre*_*mer 5

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

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

echo preg_replace("~\/(?!.*\/)~", $replace, $public_url);
?>
Run Code Online (Sandbox Code Playgroud)

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

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

echo preg_replace("~\/(?!.*\/)(.*)~", $replace, $public_url);
Run Code Online (Sandbox Code Playgroud)

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