preg_替换不使用问号php的twitter url
我创建了下一个函数,将url替换为id为的preg_替换不使用问号php的twitter url,php,preg-replace,Php,Preg Replace,我创建了下一个函数,将url替换为id为的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;
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时,它检索到了一个额外的?s=20
https://twitter.com/Minsa_Peru/status/1262730246668922885?s=20
如何删除此
?s=20
文本以使其发挥作用?我只知道我需要改进我的正则表达式模式。谢谢。如果您只需要正则表达式:
$pattern = '/https?:\/\/twitter\.com\/.*?\/status\/(\d+)(.*)?/';
因为??不是一个数字,因此它将与(.*)
分隔,这意味着所有东西都是静止的,在本例中是?s=xyz
,最后一个问号是?
,表示它可以存在或不存在
如果只需要正则表达式:
$pattern = '/https?:\/\/twitter\.com\/.*?\/status\/(\d+)(.*)?/';
因为??不是一个数字,因此它将与(.*)
分隔,这意味着所有东西都是静止的,在本例中是?s=xyz
,最后一个问号是?
,表示它可以存在或不存在
这是否回答了您的问题@休伊特ịnh,实际上不需要,因为问号后面的结尾是可变的,并且在preg_匹配中,@Sammitch I需要改进正则表达式,只需删除?后面的所有内容,包括它本身。将URL解析为其组件将简化这一操作。这回答了您的问题吗@休伊特ịnh,实际上不需要,因为问号后面的结尾是可变的,并且在preg_匹配中,@Sammitch I需要改进正则表达式,只需删除?后面的所有内容,包括它本身。将URL解析为其组成部分将简化这一操作。