pgsql如何使用正則表達式的通配符,如匹配字母,數字

版權聲明:轉載請註明作者(獨孤尚良dugushangliang)出處:https://blog.csdn.net/dugushangliang/article/details/105047395

 

下圖來自於https://www.runoob.com/sql/sql-wildcards.html,我們會有下圖的認知,由此寫出模糊查詢的語句。

但查詢地址中是否含有幾號,則沒有成功,經查驗,這是因爲pgsql的like只支持%和_這兩個通配符的特性。匹配字母的[a-zA-Z]和匹配數字的[0-9]則不可用於like。

--起初在pgsql中是這麼寫的,沒有結果,不符合預期
select * from total where addname like '%[0-9]+號_%'

--經查詢,pgsql的like只支持%和_這兩個通配符

--匹配數字用到的[]不能用於like,而是SIMILAR TO
select * from total where addname similar to '%[0-9]+號_%'

http://postgres.cn/docs/11/functions-matching.html摘錄了部分內容 如下:

  • |表示選擇(兩個候選之一)。

  • *表示重複前面的項零次或更多次。

  • +表示重複前面的項一次或更多次。

  • ?表示重複前面的項零次或一次。

  • {m}表示重複前面的項剛好m次。

  • {m,}表示重複前面的項m次或更多次。

  • {m,n}表示重複前面的項至少m次並且不超過n次。

  • 可以使用圓括號()把多個項組合成一個邏輯項。

  • 一個方括號表達式[...]聲明一個字符類,就像 POSIX 正則表達式一樣。

注意點號(.)不是SIMILAR TO的一個元字符。

 

獨孤尚良dugushangliang——著

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章