我想从以下ID中提取数值(10004,12245,13456):
10004a, 12v245,和 13456n
我可以使用以下正则表达式代码获取12v245 ID以外的正确ID号:
REGEXP_EXTRACT([ID], '([0-9]+)')
12v245 ID仅返回前两个数字。我的代码中缺少什么?
答案 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#