psql 正則匹配

2021-08-28 07:46:09 字數 2190 閱讀 2221

和like模式不一樣的是,正規表示式允許匹配串裡的任何位置,除非該正規表示式顯式地掛接在串的開頭或者結尾。

substring(string from pattern)

提供了抽取乙個匹配 posix 正規表示式模式的子串的方法。

regexp_replace(source, pattern, replacement [, flags ])

regexp_replace函式提供了將匹配 posix 正規表示式模式的子串替換為新文字的功能。

regexp_match(string, pattern [, flags ])

regexp_match 函式返回從posix正規表示式模式首次匹配到字串後捕獲的子字串的文字陣列。

regexp_matches(string, pattern [, flags ])

regexp_matches函式返回一組捕獲的字串的文字陣列

regexp_split_to_table(string, pattern [, flags ])

regexp_split_to_array(string, pattern [, flags ])

regexp_split_to_table把乙個 posix 正規表示式模式當作乙個定界符來分離乙個串。

原子描述

(re)

(其中re是任何正規表示式) 匹配乙個對re的匹配,匹配將為可能的報告被記下

.匹配任意單個字元

[chars]

乙個方括號表示式, 匹配chars中的任意乙個

\k(其中k是乙個非字母數字字元) 匹配乙個被當作普通字元看待的特定字元, 例如,\匹配乙個反斜線字元

\c其中c是乙個字母數字 (可能跟著其它字元),它是乙個逃逸(僅對 are; 在 ere 和 bre 中,它匹配c)

乙個由原子的正好m次匹配組成的序列

乙個由原子的m次或更多次匹配組成的序列

乙個由原子的從m次到n次(包括)匹配組成的序列;m不能超過n

*?*的非貪婪版本

+?+的非貪婪版本

???的非貪婪版本

?的非貪婪版本

?的非貪婪版本

?的非貪婪版本

約束描述

^串開頭的匹配

$串末尾的匹配

(?=re)

在匹配re的子串開始的任何點的positive lookahead匹配(只對 are)

(?!re)

在匹配re的子串開始的任何點的negative lookahead匹配(只對 are)

(?<=re)

只要有乙個點上有乙個子串匹配re端, positive lookbehind就在這個點上匹配(只對 are)

(?只要有乙個點上沒有子串匹配re端, negative lookbehind就在這個點上匹配(只對 are)

逃逸描述

\a警告(響鈴)字元,和 c 中一樣

\b退格,和 c 中一樣

\b反斜線(\)的同義詞,用來減少雙寫反斜線

\cx(其中x是任意字元)低序5位和x相同的字元,它的其他位都是零

\e排序序列名為esc的字元,如果無法做到該字元為八進位制值033

\f換頁,和 c 中一樣

\n新行,和 c 中一樣

\r回車,和 c 中一樣

\t水平製表符,和 c 中一樣

\uwxyz

(其中wxyz正好是四個十六進製制位) 字元十六進製制值是0xwxyz

\ustuvwxyz

(其中stuvwxyz正好是八個十六進製制位) 字元十六進製制值是0xstuvwxyz

\v垂直製表符,和 c 中一樣

\xhhh

(其中hhh是十六進製制位的任意序列)十六進製制值為0xhhh的字元(乙個單一字元,不管用了多少個十六進製制位)

\0值為0(空位元組)的字元

\xy(其中xy正好是兩個八進位制位,並且不是乙個後引用)八進位制值為0xy的字元

\xyz

(其中xyz正好是三個八進位制位,並且不是乙個後引用)八進位制值為0xyz的字元

逃逸描述

\d[[:digit:]]

\s[[:space:]]

\w[[:alnum:]_](注意下劃線是被包括的)

\d[1]\s

[2]\w[3

_] (注意下劃線是被包括的)

參考文獻:

:digit: ↩︎

:space: ↩︎

:alnum: ↩︎

psql備份恢復

pg dump dbname outfile 可以使用諸如 n schema 或 t table選項來備份該資料庫中你能夠 訪問的部分 宣告pg dump連線哪個資料庫伺服器,使用命令列選項 hhost和 p port。要使用其他名字,要麼宣告 u選項,要麼設定環境變數pguser。pg dump工...

js 正則匹配

isnumber 是否為數字 regexps.isnumber d d isint 是否為整形 regexps.isint d istime 是否為時間格式 regexps.istime d d d s d d d isdate 是否為日期格式 regexps.isdate d d d isemai...

perl正則匹配

字元的種類是一定的,無非是空格,數字,大小寫字母,和perl中定義的元字元,還有本國語言。所以原則上任何格式的字元都能匹配。匹配工具 選擇符號,關鍵字,量詞,斷言,轉義字元 當出現多個字元組成的 非空格字元時候,例如123,45 3 s sdgg 則使用 0 9a za z 若加上 則只能匹配一行中...