Hive 中可以用 like 和 rlike 进行模糊匹配,like 采用的是 SQL 通配符,而 rlike 采用的是正则匹配。
like
% 代替 0 或多个字符 _ 代替一个字符
举个例子:
select 'aaa' like '%a%'
select 'aaa' like '_a_'
rlike
rlike 采用正则表达式,以下总结几个常用的
****: 转义用,序列 \\ 匹配 \ ^: 匹配输入字符串开始的位置 $: 匹配输入字符串结尾的位置 *: 零次或多次匹配前面的字符或子表达式 ?: 零次或一次匹配前面的字符或子表达式 x|y: 匹配 x 或 y [xyz]: 字符集。匹配包含的任一字符 \w: 匹配任何字类字符,包括下划线 .: 匹配所有单个字符
此外,还可以用 regexp 替换 rlike,用 not regexp 替换 not rlike ,效果一样。
select 'hello' regexp '^he'
select 'hello' regexp '^e'
select 'hello' regexp 'llo$'
select 'hello' regexp 'hello|world'
select 'hello' regexp 'h[\\w]llo'
select 'hello' rlike 'h.llo'
|