我编写了一个RegEx模式,用于标识紧跟在数字字符后面的字母字符,目的是在BigQuery的REGEXP_EXTRACT
函数中使用它。
模式如下:([A-Z]|[a-z])*(?=[0-9])
然而,由于BigQuery使用了RE2表达式库,所以正向向前看函数不起作用。识别数字字符而不包括在提取的字符串/匹配中的替代方法是什么?
用例:
提取英国邮政编码的前1或2个字母字符,例如
NW
9 9KLM
1 0teph
3 2eeN
10 10ke
可以使用
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
函数返回捕获的子字符串。