阅读量:133
Hive中的正则表达式支持以下语法:
^表示字符串的开头。$表示字符串的结尾。.匹配任意单个字符(除了换行符)。*匹配前面的子表达式零次或多次。+匹配前面的子表达式一次或多次。?匹配前面的子表达式零次或一次。{m,n}匹配前面的子表达式至少 m 次,至多 n 次。{m,n,}匹配前面的子表达式至少 m 次,至多 n 次(等价于{m,\})。{,m}匹配前面的子表达式至少零次,至多 m 次。[]表示字符集,包含其中任意单个字符。[^]表示字符集的补集,包含不在字符集中的任意单个字符。|表示或,用于匹配多个子表达式中的一个。()用于对子表达式进行分组。\用于转义特殊字符,使其成为普通字符。
示例:
假设有一个表 users,包含两个字段:id 和 name。如果你想查询所有名字以字母 “A” 或 “B” 开头的用户,可以使用以下正则表达式:
SELECT * FROM users WHERE name REGEXP '^[AB]';
如果你想查询所有名字中包含数字 1 或 2 的用户,可以使用以下正则表达式:
SELECT * FROM users WHERE name REGEXP '[12]';