我的問題:
求一個網址截取的正則替換運算式
http://p.yiqifa.com/n?k=2mLErnws6E4H2mLErI6H2mLsWN3OrnDsWN2e6QLs1NDF6ZLErZyH2mLe6n6w3E3LMZqt6cuLUJeH&spm=1.1.1.1&t=http://www.xuansou.com/
這樣一個網址,想把第二個http://前面的內容全部替換成空
也就是只想保留http://www.xuansou.com/
需要怎麼弄,謝謝,我是菜鳥
jordan102版主的正確回答我已經結帖了:
$s = 'http://p.yiqifa.com/n?k=2mLErnws6E4H2mLErI6H2mLsWN3OrnDsWN2e6QLs1NDF6ZLErZyH2mLe6n6w3E3LMZqt6cuLUJeH&spm=1.1.1.1&t=http://www.xuansou.com/';
echo preg_replace('/.+?t=/', '', $s);
以上是用於php代碼的,
這個如果用mysql語句來替換,請問要怎麼寫 ?
回複討論(解決方案)
截取出來就是了
SUBSTRING_INDEX(欄位名, 't=', -1)
update alibaba_site set url = replace(url,SUBSTRING_INDEX(url,'t=',-1),'') where id=2452
這樣的話整個欄位的值全部玩完了
update alibaba_site set url = replace(url,SUBSTRING_INDEX(url,'t=',-1),'') where id=2452
這樣的話整個欄位的值全部玩完了
update alibaba_site set url = replace(url,SUBSTRING_INDEX(url,'t=',-1),'') where id=2452
這樣的話整個欄位的值全部玩完了
update ylmf_site set url = SUBSTRING_INDEX(url,'url=',-1) where id=2452
試了這樣是可以的,不過有個問題
就是最後一個網址的前面那些字串是變化多端的
每替換一批都要修改一次
'前面那些字串' 是指哪些?
這個最好用php處理,mysql不支援複雜的正則寫法,如果覺得儲存在欄位的值,不滿足自己,可以php寫個正則替換指令碼執行。
'前面那些字串' 是指哪些?
網址1:http://click.linktech.cn/?m=idaphne&a=A100113464&l=99999&l_cd1=0&l_cd2=1&u_id=88819&tu=http%3A%2F%2Fwww.xuansou.com%2F
網址2:http://p.yiqifa.com/n?k=2mLErnws6E4H2mLErI6H2mLsWN3OrnDsWN2e6QLs1NDF6ZLErZyH2mLe6n6w3E3LMZqt6cuLUJeH&spm=1.1.1.1&t=http://www.xuansou.com/
這二個網址中的http://www.xuansou.com的前面就是指 “'前面那些字串' ”
怕種mysql正則好實現不,如果不好實現,用您的那個xxxx_index也是可以的,雖然麻煩了一點
update ylmf_site set url = concat('http', SUBSTRING_INDEX(url,'=http',-1)) where id=2452