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