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

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

  • 土豆1TByte 4.5 NFA
  • 板载256GB 553 NCA
  • 启动4 512GByte 4.5 NFA
  • 启动4S 512GByte 4.5 NCA

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

  • “土豆”
  • “董事会”
  • “启动4”
  • “启动4S”

每个字符串都采用相同的格式:名称,大小,其次是我们并不真正关心的其他信息。

我试图将一些文本解析字符串放在一起,但是很快,仍然在尝试学习正则表达式。

我尝试使用的Tableau计算字段类似于以下内容:

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

问题在于Byte之前的文本和数字可以是4到2个字符,我需要一种方法来确定其长度。

任何帮助将不胜感激!

happynpuzy 回答:从Tableau中的复杂字符串解析名称

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

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

这会剥夺Byte词到右边的所有内容,只剩下产品名称。

,

您可以尝试以下操作-这似乎可行-Screenshot of Tableau output。在屏幕快照中找到的各种派生列的公式下方找到(您的源列称为 [名称]

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

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

本文链接:https://www.f2er.com/3163126.html

大家都在问