从PHP中的文本中删除最后一个URL链接的表达式

时间:2019-05-09 00:25:55

标签: php regex string

我想删除字符串中最后出现的网址

输入

  

祝一切顺利。 https://google.com/last

输出

  

祝一切顺利。

输入

  

谢谢你让我感动了300万。 https://google.com/first。这不是我的成就,而是你的爱。 https://google.com/second。永远感激https://google.com/last

输出

  

谢谢你让我感动了300万。 https://google.com/first。这不是我的成就,而是你的爱。 https://google.com/second。永远感激

2 个答案:

答案 0 :(得分:1)

您可以尝试以下代码。

$str = "Thank you for making me touch 3 Million. https://google.com/first. It’s not MY achievement... it’s your LOVE. https://google.com/second. Gratitude forever https://google.com/last";
//$str = "Hey All the Best. https://google.com/last";
$p = "/(https?:\/\/[^\/]+(?:[\d\w\/\._]*)\s*)$/i";
$result = preg_replace($p, '', $str);
var_dump($result);

正则表达式中的'$'是最后一个匹配项,如果未添加'$',则所有链接都将被匹配。与此对应的是“ ^”,匹配开头。

答案 1 :(得分:0)

类似的事情会做:

https?://\S+(?!.*https?://\S+)