【发布时间】:2018-02-22 19:30:22
【问题描述】:
因此,我正在查看一位已经离开一段时间的前雇员留下的东西的文档。我了解正则表达式,我只是不知道在这种情况下发生了什么。
TABLE_QUERY(server_logs_abc, 'REGEXP_MATCH(table_id, r"^def_[A-Za-z0-9]{5}_[\d]{8}") and datediff( current_timestamp(), timestamp( regexp_extract(table_id,r"(\d{8})$") ) ) < 30')
也有这样的日常表
iserver_cogs_abc.def_4J389_20180221
iserver_cogs_abc.def_4J389_20180220
iserver_cogs_abc.def_4J389_20180219
iserver_cogs_abc.def_4J389_20180218
以此类推。
所以我理解这两个正则表达式。 REGEXP_MATCH 的第一个是命名约定:
def_4J389_2018XXXX
(XXXX 代表月份和日期时间码,即 0221)
REGEXP_EXTRACT 中的第二个 Regex 是 8 位时间码(即 20180221)
但这一切放在一起意味着什么。此外,前导 r 意味着进行两个正则表达式部分(即 r"^def_[A-Za-z0-9]{5}_[\d]{8}"
【问题讨论】:
标签: sql regex google-bigquery