2017-05-04 172 views
1

我有以下兩個URL搜索字符串:如何在postgres中使用正則表達式刪除加號?

?fbad_id=6073971598331 

?fbad_id=+6073971598331 

我嘗試將它與下面的解碼,

substring("search", '.*[?&]fbad_id=([^$&]*)') as fbad_id 

但我怎麼可以更新的代碼也將加號移除時,它在那裏?

+0

有一個在這裏一個缺陷。 '='後的'+'將作爲量詞。 – Rahul

+2

你是對的!我貼了我可憐的嘗試來修復它。 =)@Rahul – fbonawiede

+0

那麼你現在的問題是什麼? – Rahul

回答

0

你可以使用一個[+]?=後爲1個或0 +符號匹配:

select substring('?fbad_id=+6073971598331' from '.*[?&]fbad_id=[+]?([^&]*)'); 

見的online PostgreSQL demo

圖案的詳細資料

  • .* - 任何0+字符,儘可能多的,到隨後的子模式的最後出現
  • [?&] - 一個?&符號
  • fbad_id= - a fbad_id=子串
  • [+]? - 一個或零+符號
  • ([^&]*) - 捕獲組1匹配任何0+字符比&其他(因爲[^...]是一個否定的字符類)
+0

謝謝!這解決了它! – fbonawiede

+1

非常感謝!對不起,作爲一個新手,我用了一段時間的Stackoverflow,但我從未發佈過一個問題。 – fbonawiede