首页 > 解决方案 > 在 Bigquery 中看到“数字 + 一个字母 + [逗号或空格]”后提取字符串的正则表达式

问题描述

我正在尝试提取:

Abbey Grove
Abbey Grove
Abbey Road View
Abbey Road
Abbey Terrace
Abbey Wood Road
Abbey Grove

23a, Abbey Grove
43a Abbey Grove
Block 509a Abbey Road View
511 Abbey Road
Flat 8a, Abbey Terrace
14 Abbey Wood Road
100 Abbey Grove

在谷歌大查询中。问题是:

regexp_replace(text, '[^a-zA-Z]', '')

给了我两个 a 的“aabbeywood”。本质上,我只想将所有文本保留在“数字”或“数字加一个字母”字符串之后。

标签: sqlregexnlpgoogle-bigquery

解决方案


这并不容易,因为我不知道您的所有限制(例如街道名称可以包含数字吗?数字前是否可以有除“Block”之外的其他词?)。这是适用于给定示例的正则表达式(您可以从 获取街道名称group3):

^(Block ){0,1}([0-9]+[A-Z|a-z]{0,1}[,]{0,1} )([a-z|A-Z| ]+)

有关示例,请参见此链接。


推荐阅读