SQL中可以使用like %进行模糊匹配。
在一些稍复杂的查询场景中,sql也支持正则表达式的匹配,Mysql中使用REGEXP操作符进行正则表达式的匹配。
各种操作符的运算优先级
转义符
(), (??, (?=), [] 圆括号和方括号
*, +, ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 位置和顺序
|
例子:
SELECT * from byh_user where REGEXP_LIKE(mobile, '^[1]{1}[345]{1}[[:digit:]]{9}$') 3.2 Hive正则匹配函数 (1)regexp_extract语法: regexp_extract(string subject, string pattern, int index)
返回值: string
说明: 将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。
第一参数: 要处理的字段
第二参数: 需要匹配的正则表达式
第三个参数:
0是显示与之匹配的整个字符串
1 是显示第一个括号里面的
2 是显示第二个括号里面的字段…
例子: selectregexp_extract('x=a3&x=18abc&x=2&y=3&x=4','x=([0-9]+)([a-z]+)',0), -- x=18abcregexp_extract('x=a3&x=18abc&x=2&y=3&x=4','^x=([a-z]+)([0-9]+)',0) -- x=a3 (2)regexp_replace
例子:
regexp_replace(mobile,’[^0-9]’,’’)