openGauss SQL参考—函数和操作符:字符处理函数和操作符(3)
-
substring(string from pattern for escape)
描述:截取匹配SQL正则表达式的子字符串。声明的模式必须匹配整个数据串,否则函数失败并返回空值。为了标识在成功的时候应该返回的模式部分,模式必须包含逃逸字符的两次出现,并且后面要跟上双引号(")。匹配这两个标记之间的模式的文本将被返回。
返回值类型:text
示例:
openGauss=# SELECT substring('Thomas' from '%#"o_a#"_' for '#'); substring ----------- oma (1 row) -
rawcat(raw,raw)
描述:字符串拼接函数。
返回值类型:raw
示例:
openGauss=# SELECT rawcat('ab','cd'); rawcat -------- ABCD (1 row) -
regexp_like(text,text,text)
描述:正则表达式的模式匹配函数。
返回值类型:bool
示例:
openGauss=# SELECT regexp_like('str','[ac]'); regexp_like ------------- f (1 row) -
regexp_substr(string text, pattern text [, position int [, occurrence int [, flags text]]])
描述:正则表达式的抽取子串函数。与substr功能相似,正则表达式出现多个并列的括号时,也全部处理。
参数说明:
- string:用于匹配的源字符串。
- pattern:用于匹配的正则表达式模式串。
- position:可选参数,表示从源字符串的第几个字符开始匹配,默认值为1。
- occurrence:可选参数,表示抽取第几个满足匹配的子串,为,默认值为1。
- flags:可选参数,包含零个或多个改变函数匹配行为的单字母标记。其中:m表示按照多行模式匹配。SQL语法兼容A和B的情况下,n选项在GUC参数behavior_compat_options值包含aformat_regexp_match时,表示 . 能够匹配 '\n' 字符,flags中没有指定n时,默认.不能匹配 '\n' 字符;值不包含aformat_regexp_match时,. 默认能匹配'\n'字符。n选项的含义与m选项一致。
返回值类型:text
示例:
openGauss=# SELECT regexp_substr('str','[ac]'); regexp_substr --------------- (1 row) openGauss=# SELECT regexp_substr('foobarbaz', 'b(..)', 3, 2) AS RESULT; result -------- baz (1 row) -
regexp_count(string text, pattern text [, position int [, flags text]])
描述:获取满足匹配的子串个数。
参数说明:
-
string:用于匹配的源字符串。
-
pattern:用于匹配的正则表达式模式串。
-
position:表示从源字符串的第几个字符开始匹配,为可选参数,默认值为1。
-
flags:可选参数,包含零个或多个改变函数匹配行为的单字母标记。其中:m表示按照多行模式匹配。SQL语法兼容A和B的情况下,n选项在GUC参数behavior_compat_options值包含aformat_regexp_match时,表示 . 能够匹配 '\n' 字符,flags中没有指定n时,默认.不能匹配 '\n' 字符;值不包含aformat_regexp_match时,. 默认能匹配'\n'字符。n选项的含义与m选项一致。可选的参数包括b,c,e,i,m,n,p,q,s,t,w,x。
返回值类型:int
示例:
openGauss=# SELECT regexp_count('foobarbaz','b(..)', 5) AS RESULT; result -------- 1 (1 row) -
-
regexp_instr(string text, pattern text [, position int [, occurrence int [, return_opt int [, flags text]]]])
描述:获取满足匹配条件的子串位置(从1开始)。如果没有匹配的子串,则返回0。
参数说明:
-
string:用于匹配的源字符串。
-
pattern:用于匹配的正则表达式模式串。
-
position:可选参数,表示从源字符串的第几个字符开始匹配,默认值为1。
-
occurrence:可选参数,表示获取第occurrence个匹配子串的位置,默认值为1。
-
return_opt:可选参数,用于控制返回匹配子串的首字符位置还是尾字符位置。取值为0时,返回匹配子串的第一个字符的位置(从1开始计算),取值为大于0的值时,返回匹配子串的尾字符的下一个字符的位置。默认值为0。
-
flags:可选参数,包含零个或多个改变函数匹配行为的单字母标记。其中:m表示按照多行模式匹配。SQL语法兼容A和B的情况下,n选项在GUC参数behavior_compat_options值包含aformat_regexp_match时,表示 . 能够匹配 '\n' 字符,flags中没有指定n时,默认.不能匹配 '\n' 字符;值不包含aformat_regexp_match时,. 默认能匹配'\n'字符。n选项的含义与m选项一致。
返回值类型:int
示例:
openGauss=# SELECT regexp_instr('foobarbaz','b(..)', 1, 1, 0) AS RESULT; result -------- 4 (1 row) openGauss=# SELECT regexp_instr('foobarbaz','b(..)', 1, 2, 0) AS RESULT; result -------- 7 (1 row) -

浙公网安备 33010602011771号