从 Tableau 中的复杂字符串中解析名称

Parsing a name from a complex string in Tableau

我在 Tableau 中有一系列值,它们是混合了字母和数字的长字符串。我无法控制数据输出,但想从这些字符串中解析名称。它们遵循以下格式:

从每一个中,我试图捕捉以下内容:

每个字符串都遵循相同的格式:名称,然后是大小,然后是一些我们并不真正关心的额外信息。

我已经尝试将一些文本解析字符串放在一起,但效果不佳,而且我仍在努力学习正则表达式。

我尝试使用的 Tableau 计算字段如下所示:

LEFT([String], FIND([String], "Byte") - 2)

问题是 Byte 前面的文本和数字可以是 4 到 2 个字符,我需要一种方法来识别它的长度。

如有任何帮助,我们将不胜感激!

一个使用正则表达式替换的选项:

REGEXP_REPLACE('Launch 4 512GByte 4.5 NFA', ' \d+[A-Z]Byte .*$', '')

这会去掉 Byte 项到右边的所有内容,只留下产品名称。

您可以尝试以下方法 - 这似乎有效 - Screenshot of Tableau output。在下面找到您在屏幕截图中看到的各种派生列的公式(您的源列称为 [Name]

  1. 步骤 1 = LEFT([Name],FIND([Name],"Byte")-1)
  2. 步骤 2 = LEN([Step1])-LEN(REPLACE([Step1]," ",""))
  3. 步骤 3 = FINDNTH([Step1]," ",[Step2])
  4. Step4 = LEFT([Step1],[Step3]-1)

当然,您可以将所有这些嵌套在一个计算字段中 - 将它们保留为单独的列以便于理解