大查询:在文本后提取一定数量的符号

时间:2015-01-28 14:28:31

标签: extract google-bigquery

我的数据库有两列,看起来像

  

名称/描述

     

Anna / Home,电话:123-45678,传真:123-45679

     

Ben / School,没有电话,没有传真<​​/ p>      

Clair / Job,电话:987-65432,传真:987-45679

     

Dave / Home,电话:147-85236,没有传真<​​/ p>

我希望最终只能获得那些拥有电话号码和相应号码的人。 应该最终看起来像

  

名称/描述

     

Anna / TEL:123-45678

     

Clair / TEL:987-65432

     

Dave / TEL:147-85236

但到目前为止,我对左()或右()的所有尝试都没有太大成功。

喜欢

  

对(说明,13)

但这仅在电话号码是所有字符串中的最后一个条目时才有效。

另外

  

left(Description,13)

效果不佳,因为电话号码不在开头。

谢谢!

1 个答案:

答案 0 :(得分:3)

正则表达式提取函数可以让你这样做,即

select regexp_extract(
   'Clair/ Job,TEL:987-65432, Fax:987-45679', 
   r'TEL:(\d\d\d-\d\d\d\d\d)')

(请注意,正则表达式模式以'r'为前缀,使其成为原始字符串文字)