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]';