【发布时间】:2021-01-22 23:21:53
【问题描述】:
我正在尝试使用 BigQuery 的 REGEXP_EXTRACT_ALL 函数来解析 operator: query 形式的“搜索查询”。查询字符串中可以有多个运算符/查询对,并且属于运算符的“子查询”可以有多个用括号括起来的单词。我想使用正则表达式从查询字符串中只提取“搜索运算符”。
例如:
- 动物:猫 -> [“动物”]
- 动物:(山狮) -> [“动物”]
- 月份:二月日:星期日 -> ["month", "day"]
- 日期:(7 月 31 日)天气:(蓝天) -> [“日期”,“天气”]
有什么建议吗?我绝对是一个正则表达式菜鸟,到目前为止我做得最好的是REGEXP_EXTRACT_ALL(query, "(.\*):") AS operator
它递归地扩展了冒号之前看到的所有文本(给我类似 ["date", "date: (july 31) weather"] 的结果)。
我想实现的最后一个“高级”功能是仅包含完全由文本组成的搜索运算符。例如:
时间:2020-07-08T17:09:14.043Z -> ["time"]
谢谢!
【问题讨论】:
标签: sql regex google-bigquery