在Tableau中使用REGEXP_EXTRACT提取字符串时获取“null”

时间:2017-02-13 20:56:56

标签: regex tableau

我一直在尝试使用Tableau中的REGEXP_EXTRACT函数而没有成功(参见下图)。我有一个字符串列'FOB',我想提取大写字母。有时大写字母后面有一个破折号,有时候没有,所以我在创建的字段'Advertiser'中使用了以下语法:

REGEXP_EXTRACT([FOB],'^[A-Z]*')  

但是,这会产生一个满“null”的列。奇怪的是,即使我将模式从'^ [A-Z] *'更改为'SDM',它仍然是相同的。看来Tableau没有启用正则表达式...

我确实在网上检查了我的正则表达式here并且它确实有效......真的很困惑,任何帮助都会受到赞赏。

enter image description here

1 个答案:

答案 0 :(得分:3)

由于您需要提取每个 [FOB] 列单元格中的第一个字符,因此需要使用[A-Z]锚点和(...)字符类你需要用捕获组(即成对括号,REGEXP_EXTRACT([FOB],'^([A-Z])') ^ ^ )包装模式,告诉Tableau你需要提取这个模式部分:

+

要提取所有(一个或多个)首要大写字母,请添加REGEXP_EXTRACT([FOB],'^([A-Z]+)') ^

{{1}}

请参阅Mark Jackson's regex blog excerpt

  

整个模式用括号括起来告诉Tableau返回模式的哪个部分。这是我在创建此帖子时使用的早期测试版的更新。这个添加的好处是Tableau允许您在字符串的更大部分上进行模式匹配,但允许您返回模式的子集。