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