BigQuery - RegExes 的 Positive Lookahead 的替代方法

BigQuery - Alternative method to Positive Lookahead for RegExes

我编写了一个 RegEx 模式,用于识别紧跟数字字符的字母字符,目的是将其用于 BigQuery 的 REGEXP_EXTRACT 函数。

模式如下:([A-Z]|[a-z])*(?=[0-9])

但是,由于BigQuery使用RE2表达式库,Positive Lookahead功能不起作用。识别数字字符而不将其包含在提取的 string/match 中的替代方法是什么?

用例:

提取英国邮政编码的前 1 或 2 个字母字符,例如

你可以使用

REGEXP_EXTRACT(col, '^[A-Za-z]+')

^[A-Za-z]+ 正则表达式匹配

  • ^ - 字符串开头
  • [A-Za-z]+ - 一个或多个字母。

此外,如果您必须检查首字母后的数字,您可以使用

REGEXP_EXTRACT(col, '^([A-Za-z]+)[0-9]')

^([A-Za-z]+)[0-9] 正则表达式匹配并 捕获第 1 组 初始字母,然后仅匹配一个数字(使用 [0-9])。 REGEXP_EXTRACT 函数 returns 如果有捕获组则捕获子串。