第4和第5之间的正则表达式匹配“_” [复制]

问题描述 投票:0回答:2

这个问题已经在这里有一个答案:

在SQL(BIGQUERY)。

我想用regex_extract功能并提取第四和第五之间的表达“_”

例如:从这个表达式:

Bubble_ALLTIERS_30-65+_M_2%Payers100-500_AEO7D_29_1_EN

我想提取短语2%Payers100-500

谢谢。

regex google-bigquery
2个回答
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)]

0
投票

采用

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

a demo on regex101.com

© www.soinside.com 2019 - 2024. All rights reserved.