使用Regex替换删除存储为string-Alteryx的重复数字



由于应用于大量列,试图使用正则表达式替换在alteryx中删除相同单元格中的重复数字。下面是我现在的公式。它适用于所有行,除了最后一行,其中小数是正在删除的数字,而不是只是在同一单元格中删除逗号之间的重复数字。有什么建议吗?我一直在玩regex101.com的公式,似乎不能弄清楚。

修剪(REGEX_Replace ([CurrentField],"(- ? d + (?: [,] d +)?),(?=.* 1 )', ''))

ID价格tbody> <<tr>122
描述CurrentOUTPUT期望输出
00, 0, 67, 67, 00, 670, 67
蓝色-30年,-30年-30-30
绿色0.03, 0.045, 0.030.03, 0.0450.03, 0.045
绿色1.17, 0.37, 0.36, 0.36, 0.371.10.36, 0.371.17, 0.37, 0.36

可以使用

TRIM(REGEX_Replace([_CurrentField_], ',?(-?d+(?:[.,]d+)?)(?=.*1)', ''), ',')

参见regex演示。

您需要在regex替换后修剪逗号,因此使用TRIM

细节:

  • ,?-可选逗号
  • (-?d+(?:[.,]d+)?)-组1:一个可选的减号,一个或多个数字,然后是一个可选的.,序列和一个或多个数字
  • (?=.*1)-一个积极的前瞻性匹配的位置,紧跟着任何零或更多的字符,除了换行符,然后尽可能多的组1值。

最新更新