第4个和第5个“ _”之间的正则表达式匹配

时间:2019-02-04 15:55:31

标签: regex google-bigquery

在SQL(Bigquery)中。

我想使用regex_extract函数并提取第4个和第5个“ _”之间的表达式

示例: 从这个表达式:

Bubble_ALLTIERS_30-65+_M_2%Payers100-500_AEO7D_29_1_EN

我要提取短语2%Payers100-500

谢谢。

2 个答案:

答案 0 :(得分:0)

使用

^(?:[^_]*_){4}([^_]+)

请参见a demo on regex101.com

答案 1 :(得分:0)

以下是用于BigQuery标准SQL的代码,对我来说,这是进行这种提取的最简单方法

SPLIT(phrase , '_')[SAFE_OFFSET(4)] 

您可以按照下面的示例进行测试

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'Bubble_ALLTIERS_30-65+_M_2%Payers100-500_AEO7D_29_1_EN' phrase 
)
SELECT SPLIT(phrase , '_')[SAFE_OFFSET(4)] word 
FROM `project.dataset.table`

有结果

Row word     
1   2%Payers100-500  

另一个选择是

REGEXP_EXTRACT_ALL(phrase, r'[^_]+')[SAFE_OFFSET(4)]