从这个字符串:
gs://analytics_models_from_g_rdd_ga/9g653798d-7e13-4238-55443-6db72ace9911$$$$events_today.csv
我正在尝试提取此文本:
9g653798d-7e13-4238-55443-6db72ace9911
并在单独的REGEX函数中 events_today
第一个字符串的滚动:
我缝了几本教程和红色正则表达式参考,但仍然没有成功,我以为解决方案可以,/\\s*(.*?)\\s*$$$$
但不是。
通常,要提取2个字符串之间的字符串
你可以使用
REGEXP_REPLACE(col, r".*ga/([^/$]*)\${4}.*", r"\1")
请参阅regex演示。
.*
可以在以下方面使用相同但有所简化的模式,因为它将变得多余REGEGEXP_EXTRACT
:
REGEXP_EXTRACT(col, r"ga/([^/$]*)\${4}")
图案细节:
.*
-除换行符以外的任何零个或多个字符,并且尽可能多ga/
-ga
和一个斜线([^/$]*)
-第1组:除/
和以外的任何零个或多个字符$
\${4}
-四个$
符号.*
-尽可能多的除换行符以外的零个或多个字符。替换项是第1组反向引用,\1
它将整个匹配项替换为该组的内容。
对于第二个字符串,
REGEXP_REPLACE(_FILE_NAME, r".*ga/([^/$]*)\${4}(.*)\.csv", r"\2")
谢谢