如何从以数组中列出的子字符串结尾的字符串中提取单词?大查询
How to extract words from a string that end with substrings listed in an array? BigQuery
我有 table 行的单元格包含多个字符串。像这样:
K1111=V1111;K1=V1;kv13_key4=--xxxxxsomething;id5=true;impid=23123123;location=domain_co_uk
我需要提取一个以 kv13_key4= 开头并以任何内容结尾的子字符串,但长度各不相同,并且子字符串都用分号分隔; .我试过了
REGEXP_EXTRACT(customtargeting,'%in2w_key4%;') As contains_key_Value
但没用。我需要这样的东西:
| Original Cell | Extracted |
| key88=1811111;id89=9990string;K1=V1;23234234234tttttttt13_key4=--x;id5=true;impid=23123;url=domain_co_uk | kv13_key4=--x |
| K1111=V1111;K1=V1;kv13_key4=--xsomething;id5=true;impid=23123123;location=domain_co_uk | kv13_key4=--xsomething |
| ;id5=true;T6791=V1111;K1=V1;kv13_key4=--xxxxxsomething123;impid=23123 | kv13_key4=--xxxxxsomething123 |
这个正则表达式有效吗:
(?<=kv13_key4=)[^;]+(?=;)
它捕获 'kv13_key4=' 和最近的“;”之间的所有内容
您的 REGEX_EXTRACT 看起来像:
REGEXP_EXTRACT(customtargeting,r'(?<=kv13_key4=)[^;]+(?=;)')
考虑以下
select *, regexp_extract(customtargeting, r'kv13_key4=[^;]+') as Extracted
from your_table
如果应用于您问题中的示例数据 - 输出为
我有 table 行的单元格包含多个字符串。像这样:
K1111=V1111;K1=V1;kv13_key4=--xxxxxsomething;id5=true;impid=23123123;location=domain_co_uk
我需要提取一个以 kv13_key4= 开头并以任何内容结尾的子字符串,但长度各不相同,并且子字符串都用分号分隔; .我试过了
REGEXP_EXTRACT(customtargeting,'%in2w_key4%;') As contains_key_Value
但没用。我需要这样的东西:
| Original Cell | Extracted |
| key88=1811111;id89=9990string;K1=V1;23234234234tttttttt13_key4=--x;id5=true;impid=23123;url=domain_co_uk | kv13_key4=--x |
| K1111=V1111;K1=V1;kv13_key4=--xsomething;id5=true;impid=23123123;location=domain_co_uk | kv13_key4=--xsomething |
| ;id5=true;T6791=V1111;K1=V1;kv13_key4=--xxxxxsomething123;impid=23123 | kv13_key4=--xxxxxsomething123 |
这个正则表达式有效吗:
(?<=kv13_key4=)[^;]+(?=;)
它捕获 'kv13_key4=' 和最近的“;”之间的所有内容
您的 REGEX_EXTRACT 看起来像:
REGEXP_EXTRACT(customtargeting,r'(?<=kv13_key4=)[^;]+(?=;)')
考虑以下
select *, regexp_extract(customtargeting, r'kv13_key4=[^;]+') as Extracted
from your_table
如果应用于您问题中的示例数据 - 输出为