Bigquery:在文本后提取一定数量的符号
Big Query: extract a certain number of signs after a text
我的数据库有两列,看起来像
Name/ Description
Anna/ Home, TEL:123-45678, Fax:123-45679
Ben/ School, no phone,no FAX
Clair/ Job,TEL:987-65432, Fax:987-45679
Dave/ Home, TEL:147-85236, no FAX
我最终只想得到那些拥有 phone 号码和相应号码的人。
最终应该看起来像
Name/ Description
Anna/ TEL:123-45678
Clair/ TEL:987-65432
Dave/ TEL:147-85236
但到目前为止,我对 left() 或 right() 的所有尝试都没有成功。
喜欢
right(Description, 13)
但这只有在 phone 数字是所有字符串中的最后一个条目时才有效。
还有
left(Description, 13)
结果不好,因为 phone 数字不在开头。
谢谢!
正则表达式提取函数可以让你做到这一点,即
select regexp_extract(
'Clair/ Job,TEL:987-65432, Fax:987-45679',
r'TEL:(\d\d\d-\d\d\d\d\d)')
(请注意,正则表达式模式以 'r' 为前缀,使其成为原始字符串文字)
我的数据库有两列,看起来像
Name/ Description
Anna/ Home, TEL:123-45678, Fax:123-45679
Ben/ School, no phone,no FAX
Clair/ Job,TEL:987-65432, Fax:987-45679
Dave/ Home, TEL:147-85236, no FAX
我最终只想得到那些拥有 phone 号码和相应号码的人。 最终应该看起来像
Name/ Description
Anna/ TEL:123-45678
Clair/ TEL:987-65432
Dave/ TEL:147-85236
但到目前为止,我对 left() 或 right() 的所有尝试都没有成功。
喜欢
right(Description, 13)
但这只有在 phone 数字是所有字符串中的最后一个条目时才有效。
还有
left(Description, 13)
结果不好,因为 phone 数字不在开头。
谢谢!
正则表达式提取函数可以让你做到这一点,即
select regexp_extract(
'Clair/ Job,TEL:987-65432, Fax:987-45679',
r'TEL:(\d\d\d-\d\d\d\d\d)')
(请注意,正则表达式模式以 'r' 为前缀,使其成为原始字符串文字)