我想通过使用regexp extract来提取下面的数据模式

mfpqipee  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(91)

我有数据模式

"<AccessEntry: role=READER,
[email protected]>"

"<AccessEntry: role=WRITER, 
specialgroup=projectReaders>"

字符串
数据在Bigquery表中。我想在其他列中提取userbyemail/specialgroup,在其他列中提取[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection) /projectReaders。值是动态的,但我给了你理解的模式。
我尝试regexp,但我只是得到了不同列中的角色的值,但无法在其他列中获得其他值。

cvxl0en2

cvxl0en21#

你可以使用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;

字符串

相关问题