使用 Regex Replace 删除存储为字符串的重复数字-Alteryx
Using Regex Replace to remove duplicate numbers stored as string-Alteryx
由于应用于大量列,正在尝试使用正则表达式替换删除 alteryx 中同一单元格中的重复数字。以下是我目前的公式。它适用于除最后一行之外的所有行,其中小数点是数字被删除,而不是仅仅删除同一单元格中逗号之间的重复数字。有什么建议么?我一直在玩 regex101.com 中的公式,但似乎无法弄明白。
TRIM(REGEX_Replace([CurrentField], '(-?\d+(?:[.,]\d+)?), (?=.*\1)', ''))
ID
Description
Price
CurrentOUTPUT
Desired Output
0
red
0,0,67,67,0
0,67
0,67
1
blue
-30,-30
-30
-30
2
green
0.03,0.045,0.03
0.03,0.045
0.03,0.045
2
green
1.17,0.37,0.36,0.36,0.37
1.10.36,0.37
1.17,0.37,0.36
你可以使用
TRIM(REGEX_Replace([_CurrentField_], ',?(-?\d+(?:[.,]\d+)?)(?=.*)', ''), ',')
参见regex demo。
正则表达式替换后需要 trim 逗号,因此使用 TRIM
。
详情:
,?
- 一个可选的逗号
(-?\d+(?:[.,]\d+)?)
- 第 1 组:一个可选的减号,一位或多位数字,然后是可选的 .
或 ,
序列和一位或多位数字
(?=.*)
- 匹配一个位置的正向前瞻,紧跟其后的是除换行符之外的任何零个或多个字符,然后是第 1 组值。
由于应用于大量列,正在尝试使用正则表达式替换删除 alteryx 中同一单元格中的重复数字。以下是我目前的公式。它适用于除最后一行之外的所有行,其中小数点是数字被删除,而不是仅仅删除同一单元格中逗号之间的重复数字。有什么建议么?我一直在玩 regex101.com 中的公式,但似乎无法弄明白。
TRIM(REGEX_Replace([CurrentField], '(-?\d+(?:[.,]\d+)?), (?=.*\1)', ''))
ID | Description | Price | CurrentOUTPUT | Desired Output |
---|---|---|---|---|
0 | red | 0,0,67,67,0 | 0,67 | 0,67 |
1 | blue | -30,-30 | -30 | -30 |
2 | green | 0.03,0.045,0.03 | 0.03,0.045 | 0.03,0.045 |
2 | green | 1.17,0.37,0.36,0.36,0.37 | 1.10.36,0.37 | 1.17,0.37,0.36 |
你可以使用
TRIM(REGEX_Replace([_CurrentField_], ',?(-?\d+(?:[.,]\d+)?)(?=.*)', ''), ',')
参见regex demo。
正则表达式替换后需要 trim 逗号,因此使用 TRIM
。
详情:
,?
- 一个可选的逗号(-?\d+(?:[.,]\d+)?)
- 第 1 组:一个可选的减号,一位或多位数字,然后是可选的.
或,
序列和一位或多位数字(?=.*)
- 匹配一个位置的正向前瞻,紧跟其后的是除换行符之外的任何零个或多个字符,然后是第 1 组值。