如果需要用like来匹配字符串中的特殊字符,eg.?, \ ,/。需要对其做转义,否则会当做正则表达被处理。
hive> select channel from test;
a?bc
a_bc
a.bc
hive> select channel from test where channel like '%\?%'
a?bc
hive> select channel from test where channel like '%\_%'
正则表达式需要转义的特殊字符
- $ :匹配输入字符串结尾的位置。若要匹配 $ 字符本身,请使用 \$。
- ( ) :标记子表达式的开始和结束。可以捕获子表达式以供以后使用。若要匹配这两个字符,请使用 \( 和 \)。
- *:零次或多次匹配前面的字符或子表达式。若要匹配 * 字符,请使用 \*。
- +: 一次或多次匹配前面的字符或子表达式。若要匹配 +