提问人:Shaker Khan 提问时间:10/30/2023 最后编辑:nbkShaker Khan 更新时间:10/30/2023 访问量:30
我想使用正则表达式提取以下数据模式进行提取
I want to extract by using regexp extract for the below data pattern
问:
我有数据模式
"<AccessEntry: role=READER,
[email protected]>"
"<AccessEntry: role=WRITER,
specialgroup=projectReaders>"
数据位于 Bigquery 表中。我想在其他列和其他列中提取userbyemail / specialgroup。这些值是动态的,但我给了你理解的模式。[email protected]/projectReaders
我尝试了正则表达式,但我只是在不同的列中获得了角色的值,但无法在其他列中获取其他值。
答:
0赞
SelVazi
10/30/2023
#1
您可以使用 REGEXP_EXTRACT_ALL
返回与正则表达式匹配的所有数据子字符串的数组,并ARRAY_TO_STRING
将返回的数组转换为字符串:
with cte as (
select '<AccessEntry: role=READER, [email protected]>" "<AccessEntry: role=WRITER, specialgroup=projectReaders>' as col
)
select *, ARRAY_TO_STRING(REGEXP_EXTRACT_ALL(col, r', (.+?)='), '/') as col1,
ARRAY_TO_STRING(REGEXP_EXTRACT_ALL(col, r'=([^,;]+?)>'), '/') as col2
from cte;
评论