preg_replace twitter url 不适用于问号 php

我创建了下一个函数,用它的 id 替换 url div。


 function twitterIzer($string){

  $pattern = '~https?://twitter\.com/.*?/status/(\d+)~';


   $string = preg_replace($pattern, "<div class='tweet' id='tweet$1' tweetid='$1'></div>", $string);    


return $string;

  }

当我使用这种类型的 url 时效果很好


 https://twitter.com/Minsa_Peru/status/1260658846143401984

?s=20但是当我使用这个 url 时它会检索到一个例外


https://twitter.com/Minsa_Peru/status/1262730246668922885?s=20

我怎样才能删除这段?s=20文字,以便发挥我的作用?我所知道的是我需要改进我的正则表达式模式。谢谢。


杨魅力
浏览 53回答 1
1回答

海绵宝宝撒

如果你只想要正则表达式:$pattern = '/https?:\/\/twitter\.com\/.*?\/status\/(\d+)(.*)?/';因为 ?不是一个数字,所以它会与分开(.*),这意味着一切都休息,在这种情况下是?s=xyz,最后一个问号?是说它可以存在或不存在。
打开App,查看更多内容
随时随地看视频慕课网APP