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' 为前缀,使其成为原始字符串文字)