hive 正则表达

.: 匹配任意单个字符(除了换行符)

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE 'a.b';

匹配 "a", 任意一个字符,"b" 形式的字符串,例如 "a1b" 或 "a!b"。

^: 匹配输入的开始

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE '^start';

匹配以 "start" 开头的字符串。

$: 匹配输入的结束

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE 'end$';

匹配以 "end" 结尾的字符串。

\*: 匹配前面的子表达式零次或多次

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE 'a*b';

匹配 "a" 和 "b" 之间有零个或多个 "a" 的字符串,例如 "ab", "aaab"。

+: 匹配前面的子表达式一次或多次

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE 'a+b';

匹配 "a" 和 "b" 之间至少有一个 "a" 的字符串,例如 "ab", "aaab"。

?: 匹配前面的子表达式零次或一次

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE 'a?b';

匹配 "b" 或 "ab" 的字符串。

{n}: 匹配前面的子表达式恰好 n 次

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE 'a{2}b';

匹配 "aab" 的字符串,"a" 出现恰好两次。

{n,}: 匹配前面的子表达式至少 n 次

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE 'a{2,}b';

匹配 "a" 出现至少两次,后跟 "b" 的字符串,例如 "aab", "aaab"。

{n,m}: 匹配前面的子表达式至少 n 次,但不超过 m 次

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE 'a{2,4}b';

匹配 "a" 出现 2 到 4 次,后跟 "b" 的字符串,例如 "aab", "aaab", "aaaab"。

[abc]: 匹配方括号中的任意字符

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE '[abc]';

匹配包含 "a", "b", 或 "c" 之一的字符串。

[^abc]: 匹配任何不在方括号中的字符

sql复制代码SELECT * FROM my_table
WHERE my_column RLIKE '[^abc]';

匹配不包含 "a", "b", 或 "c" 的字符。

posted on 2024-08-13 20:11  By远方  阅读(104)  评论(0编辑  收藏  举报