PostgreSQLRegex查詢

來源:互聯網
上載者:User

標籤:

參考http://www.php100.com/manual/PostgreSQL8/functions-matching.html

LIKE
string LIKE pattern [ ESCAPE escape-character ]string NOT LIKE pattern [ ESCAPE escape-character ]

每個 pattern 定義一個字串的集合。 如果該 string 包含在 pattern 代表的字串集合裡,那麼 LIKE 運算式返回真。 (和我們想象的一樣,如果 LIKE 返回真,那麼 NOT LIKE 運算式返回假, 反之亦然。一個等效的運算式是 NOT (string LIKE pattern).)

如果 pattern 不包含百分比符號 或者底線,那麼該模式只代表它本身; 這時候 LIKE 的行為就象等號操作符。 在 pattern 裡的底線 (_)代表(匹配)任何單個字元; 而一個百分比符號(%)匹配任何零或更多 字元長的字串。

下面是一些例子∶

‘abc‘ LIKE ‘abc‘    true‘abc‘ LIKE ‘a%‘     true‘abc‘ LIKE ‘_b_‘    true‘abc‘ LIKE ‘c‘      false
LIKE 模式比對總是覆蓋整個字串。 要匹配在字串內部任何位置的序列,該模式必須以百分比符號開頭和結尾。
LIKE運算子也可以匹配指定的字串,但與~不同,LIKE匹配的字串如果在文本中間出現,則找不到它,相應的行也不會返回。而~在文本進行匹配,如果被匹配的字串在文本中出現,~將會找到它,相應的行會被返回。
Table Regex匹配操作符(注意:~相當於like)
操作符 描述 例子
~ 匹配Regex,大小寫相關 ‘thomas‘ ~ ‘.*thomas.*‘
~* 匹配Regex,大小寫無關 ‘thomas‘ ~* ‘.*Thomas.*‘
!~ 不匹配Regex,大小寫相關 ‘thomas‘ !~ ‘.*Thomas.*‘
!~* 不匹配Regex,大小寫無關 ‘thomas‘ !~* ‘.*vadim.*‘

Regex量詞

量詞 匹配
* 一個匹配 0 或者更多個原子的序列
+ 一個匹配 1 或者更多個原子的序列
? 一個匹配 0 個或者 1 個原子的序列
{m} 一個正好匹配 m 個原子的序列
{m,} 一個匹配m 個或者更多原子的序列
{m,n} 一個匹配 m 到 n 個(包含兩端) 原子的序列;m 不能比 n 大
*? * 的非貪婪模式
+? + 的非貪婪模式
?? ? 的非貪婪模式
{m}? {m} 的非貪婪模式
{m,}? {m,} 的非貪婪模式
{m,n}? {m,n} 的非貪婪模式

{...} 的形式被稱作範圍。 一個範圍內的數字 m 和 n 都是無符號十進位整數, 允許的數值從 0 到 255(閉區間)。

 Regex約束

約束 描述
^ 匹配字串的開頭
$ 匹配字串的結尾
(?=re) 正前瞻 匹配任何匹配 re 的 子字串起始點(只在 ARE 中有)
(?!re) 負前瞻 匹配任何不匹配 re 的子字串的起始點。(只在 ARE 中有)

 

PostgreSQLRegex查詢

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.