regexp_extract函数用法

语法

regexp_extract(string subject, string pattern, int index)

返回值: string

功能:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。

第一参数:   要处理的字段

第二参数:    需要匹配的正则表达式

第三个参数:

  • 0是显示与之匹配的整个字符串
  • 1 是显示第一个括号里面的
  • 2 是显示第二个括号里面的字段

附:正则匹配表达

1、元字符匹配

.  表示匹配除换行符以外的任意字符。
[xyz]    字符集(character set),匹配这个集合中的任一一个字符(或元字符)
[^xyz]    不匹配这个集合中的任何一个字符
[/b]    匹配一个退格符
/b    匹配一个单词的边界
/B    匹配一个单词的非边界
/cX    这儿,X是一个控制符,//cM/匹配Ctrl-M
/d    匹配一个字数字符,//d/ = /[0-9]/
/D    匹配一个非字数字符,//D/ = /[^0-9]/
/n    匹配一个换行符
/r    匹配一个回车符
/s    匹配一个空白字符,包括/n,/r,/f,/t,/v等
/S    匹配一个非空白字符,等于/[^/n/f/r/t/v]/
/t    匹配一个制表符
/v    匹配一个重直制表符
/w    匹配字母、下划线、数字或汉字,等于[a-zA-Z0-9]
/W    匹配一个不可以组成单词的字符,等于[^a-zA-Z0-9]。

2、位置匹配

^  表示匹配字符串的开始

$  表示匹配字符串的结束

\b  表示匹配单词的开始或结束。

\B  表示匹配非单词的开始或结束

3、频率匹配

*  表示匹配重复0次或多次

+   表示匹配重复一次或更多次

?  表示匹配重复0次或1次

{n}   表示匹配重复n次

{n,}  表示重复n次或更多次

{n,m}  表示重复n到m次

4、各种操作符的运算优先级

/ 转义符
(), (?:), (?=), [] 圆括号和方括号
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 位置和顺序

regexp_substr

regexp_substr(string, regex,postion,match_parameter)

 参数:      

第一参数:string : 被解析的字符串或字段名; 

第二参数: regex: 正则表达式 ;

第三参数:postion:其实位置; 

第四参数:match_parameter:出现的次数。

regexp

 regexp:判断语句跟like、=、!=、not in 、in 类似。