【发布时间】:2017-01-30 21:26:28
【问题描述】:
我不确定如何使用 regexp_replace 来返回字符串中间的数字。
我当前的字符串是:“权力的游戏 S2 Ep6”,我需要从中返回季节编号。我当前的正则表达式正确地完成了这项工作,但需要两个正则表达式:
REGEXP_REPLACE(REGEXP_REPLACE('Game of Thrones S1 Ep12', r'(^[^_]*\sS)', ''), r'(\s*Ep\s*\d*\s*$)', '')
其他一些测试条目是:
“超人前传 S 10 第 12 集”
“我们的日子 S26 Ep324”
This first 剥离文本,直至并包括第一个“S”。 然后拆分字符串的结尾,直到并包括 "Ep" 之前的空格
有人可以给我一个捕获组,它允许在一次替换中完成此操作。目前这是一个非常昂贵的查询。
【问题讨论】:
-
我不明白的是 - 为什么要使用 replace 方法?为什么不直接使用正则表达式捕获季节编号,例如 -
\bS\s*(\d+)\s*Ep?
标签: regex google-bigquery