匹配特定的字符串格式- REGEXP_CONTAINS - GBQ Language



我正试图编写一个查询,只匹配与特定格式匹配的表名,该格式如下:FirstWord1_SecondWord2_ThirdWord3.

所以我想要得到的表名必须匹配三个字母数字单词的格式,这些单词由下划线分隔。

我一直在努力锻炼使用REGEXP_CONTAINS来获得我想要的结果的确切方法。下面是我所能得到的最接近的,但它不会返回任何结果,尽管我知道有与我想要查询的格式匹配的表。

SELECT table_name as tablenames
FROM project.dataset.INFORMATION_SCHEMA.TABLES
WHERE (
REGEXP_CONTAINS(table_name, '^([[:alnum:]]+_[[:alnum:]]+_[[:alnum:]])$')
)

对此的任何帮助都将非常感激!

您的最后一个[[:alnum:]]缺少一个+来表示一个或多个匹配字符。

SELECT table_name as tablenames
FROM project.dataset.INFORMATION_SCHEMA.TABLES
WHERE (
REGEXP_CONTAINS(table_name, '^([[:alnum:]]+_[[:alnum:]]+_[[:alnum:]]+)$')
)

SELECT table_name as tablenames
FROM project.dataset.INFORMATION_SCHEMA.TABLES
WHERE (
REGEXP_CONTAINS(table_name, '^[[:alnum:]]+_[[:alnum:]]+_[[:alnum:]]+$')
)

让我知道这是否适合你。

最新更新