Impala 是否支持负面回溯?
Are negative lookbehinds supported in Impala?
我在 Impala 中使用 regexp_like 并在字符串数组中查找模式。我针对示例数据集构建了如下表达式。
运行 它会产生以下错误消息。
Invalid regex expression: '(?<=Hello).+'
regexp_like(string_field,'(?<!Hello).+')
result
string_field
no match
Hello World, Bye World
match
Cool, Not Cool
no match
Cool, Hello, Bye Bye
这种负面回顾适用于 python。还有其他人遇到过这个吗?我试过查看文档,但没有发现任何特别有用的东西。
一个更好的例子。
我试图从逗号分隔的字符串数组中找到至少一个事件,其中至少一个数组元素前面没有关键字,例如- ('Hello')。消极环视似乎是手头任务最优雅的解决方案之一。
有点笨拙,但这很有效:
regexp_like(string_field, '(^|,)([^H]|H[^e]|He[^l]|Hel[^l]|Hell[^o])')
我在 Impala 中使用 regexp_like 并在字符串数组中查找模式。我针对示例数据集构建了如下表达式。 运行 它会产生以下错误消息。
Invalid regex expression: '(?<=Hello).+'
regexp_like(string_field,'(?<!Hello).+')
result | string_field |
---|---|
no match | Hello World, Bye World |
match | Cool, Not Cool |
no match | Cool, Hello, Bye Bye |
这种负面回顾适用于 python。还有其他人遇到过这个吗?我试过查看文档,但没有发现任何特别有用的东西。
一个更好的例子。
我试图从逗号分隔的字符串数组中找到至少一个事件,其中至少一个数组元素前面没有关键字,例如- ('Hello')。消极环视似乎是手头任务最优雅的解决方案之一。
有点笨拙,但这很有效:
regexp_like(string_field, '(^|,)([^H]|H[^e]|He[^l]|Hel[^l]|Hell[^o])')