SQL-从字符串中获取特定文本

SQL-从字符串中获取特定文本,sql,regex,google-bigquery,Sql,Regex,Google Bigquery,我有一个包含以下字符串的列: ['autre__renvoi_vers_un_mail', 'contact_type__email'] ['contact_type__email', 'internal__shop', 'uk'] 我只需要从字符串中获取联系人类型部分(每行仅显示一次) 有什么建议吗?您可以使用,比如: 这将匹配字符串'contact\u type\uuuuuuuuuuuuuu,后跟一系列字母、数字或下划线(通常定义为单词字符)。您可以使用,如: 这将匹配字符串'contac

我有一个包含以下字符串的列:

['autre__renvoi_vers_un_mail', 'contact_type__email']
['contact_type__email', 'internal__shop', 'uk']
我只需要从字符串中获取
联系人类型
部分(每行仅显示一次)

有什么建议吗?

您可以使用,比如:

这将匹配字符串
'contact\u type\uuuuuuuuuuuuuu
,后跟一系列字母、数字或下划线(通常定义为单词字符)。

您可以使用,如:

这将匹配字符串
'contact\u type\uuuuuuuuuuuu
,后跟一系列字母、数字或下划线(通常定义为单词字符)。

给定此示例:

create table t (col varchar(100));
insert into t values
('[''autre__renvoi_vers_un_mail'', ''contact_type__email'']'),
('[''contact_type__email'', ''internal__shop'', ''uk'']');
您可以使用:

select
    substring 
    (
     col,
     charindex('contact_type', col) + 14,
     charindex('''', col, charindex('contact_type', col)) - charindex('contact_type', col) - 14
    )
from
    t;
DBFIDLE

给出此示例:

create table t (col varchar(100));
insert into t values
('[''autre__renvoi_vers_un_mail'', ''contact_type__email'']'),
('[''contact_type__email'', ''internal__shop'', ''uk'']');
您可以使用:

select
    substring 
    (
     col,
     charindex('contact_type', col) + 14,
     charindex('''', col, charindex('contact_type', col)) - charindex('contact_type', col) - 14
    )
from
    t;

DBFIDLE

@OksanaOk:欢迎!只是想检查一下,如果您使用
\\w
而不是
\w
,该怎么办?@OksanaOk:欢迎!只是想检查一下,如果您使用
\\w
而不是
\w