【问题标题】:Getting "null" when extracting string using REGEXP_EXTRACT in Tableau在 Tableau 中使用 REGEXP_EXTRACT 提取字符串时获取“null”
【发布时间】:2017-02-14 05:06:38
【问题描述】:

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

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

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

我确实在网上检查了我的正则表达式here,它确实有效......真的很困惑,任何帮助将不胜感激。

【问题讨论】:

  • 这些大写字母总是第一个吗?
  • @WiktorStribiżew 是的

标签: regex tableau-api


【解决方案1】:

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

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

要提取所有(一个或多个)前导大写字母,请添加+

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

Mark Jackson's regex blog excerpt

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2021-06-08
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多