标签: regex string word hive boundary
我正在使用Hive,并拥有一个字符串数据库。我想要具有特定单词的行,但需要单词边界(如果我正在搜索“transport”,我不想要一个带有“transporter”的行)。我该怎么做?
目前,我正在执行以下操作:
蜂房> select * from myTable where(length(regexp_extract(column1,'transport',0))> 0);
但显然这并没有包含任何单词边界。
提前致谢!
答案 0 :(得分:2)
Hive使用java正则表达式语法。您可以尝试以下方法。
regexp_extract(column1, '\btransport\b')
如果失败,请尝试双重转义单词边界\\b
\\b
答案 1 :(得分:1)
我知道在POSIX兼容的正则表达式中,字边界是这样的:[[:<:]]和[[:>:]]:
[[:<:]]
[[:>:]]
[[:<:]]transport[[:>:]]
但是,我不知道hiveQL是否支持它。