我有包含这样数字的字符串:
a20cdac0_19221bdc12022bab3fe05a43df4a7dbe
我只需要在下划线符号后获取符号:
19221bdc12022bab3fe05a43df4a7dbe
不幸的是,这些符号的数量总是不同的,所以我不能只使用 RIGHT 函数。
我知道可能 REGEXP 可能会有所帮助,但我不明白如何准确地使用它。将非常感谢您的帮助。
我有包含这样数字的字符串:
a20cdac0_19221bdc12022bab3fe05a43df4a7dbe
我只需要在下划线符号后获取符号:
19221bdc12022bab3fe05a43df4a7dbe
不幸的是,这些符号的数量总是不同的,所以我不能只使用 RIGHT 函数。
我知道可能 REGEXP 可能会有所帮助,但我不明白如何准确地使用它。将非常感谢您的帮助。
您可以像这样使用拆分功能
select split('a20cdac0_19221bdc12022bab3fe05a43df4a7dbe','_')[ORDINAL(2)];
https://cloud.google.com/bigquery/docs/reference/standard-sql/string_functions#split
以下是 BigQuery 标准 SQL(使用正则表达式)
regexp_extract(value, r'_(.*)') regexp_approach
是否适用于您问题的样本值
regexp_extract('a20cdac0_19221bdc12022bab3fe05a43df4a7dbe', r'_(.*)') regexp_approach
结果是
然而,另一个正则表达式选项是regexp_replace
在下面的示例中使用
regexp_replace(value, r'^.*?_', '')
注意:split
在这种情况下使用也是一种选择,除非您有多个,_
在这种情况下您将获得第一个和第二个之间的部分_
split(value, '_')[safe_offset(1)]
此外,如您所见,您需要在不存在safe
的情况下使用以防止错误_