使用Regex在Tableau中提取数值

时间:2017-10-05 02:12:39

标签: regex

我想从以下ID中提取数值(10004,12245,13456):

10004a, 12v245,和 13456n

我可以使用以下正则表达式代码获取12v245 ID以外的正确ID号:

REGEXP_EXTRACT([ID], '([0-9]+)')

12v245 ID仅返回前两个数字。我的代码中缺少什么?

1 个答案:

答案 0 :(得分:0)

您的问题是Tableau中的函数REGEXP_EXTRACT只需要一个捕获组。

函数[0-9] +返回每个数字块的捕获组,因为ID 12v245在数字串之间有一个字母,它返回两个捕获组,即12,然后是245.

解决方法是使用嵌套替换,如下所示:

REGEXP_REPLACE(
                REGEXP_REPLACE(
                    REGEXP_REPLACE([ID], '[\D]+',"")
                , '[\D]+' , "")
            , '[\D]+' , "")

根据数据的性质,您可能希望添加更多替换。

Tableau社区中记录了此问题,因此请随时为更好的解决方案进行投票:https://community.tableau.com/ideas/4975#