删除特殊字符并在单词中添加分号-Tableau

时间:2019-06-05 16:13:33

标签: regex tableau

我需要从每个单词的开头和结尾删除特殊字符。但是很少有话说的很棘手。顺便说一句,我正在Tableau工作。

单词:

;#Bank#;Server#;

我用过

REGEXP_REPLACE([Category], "[^0-9a-zA-Z ]+", "")

使用此代码,单词变成BANKSERVER。我想要在Bankserver之间使用逗号或分号。我该如何实现?任何可能的线索将不胜感激。

实际结果:

BANKSERVER

预期结果:

BANK,SERVER

BANK;SERVER

或者,如果我在正则表达式代码中添加分号:

REGEXP_REPLACE([Category], "[^0-9a-zA-Z ;]+", "")

但是,输出如下:

;BANK;SERVER;

3 个答案:

答案 0 :(得分:2)

只需在字符类中添加分号:

REGEXP_REPLACE([Category], "[^0-9a-zA-Z; ]+", "")
//                              here __^

答案 1 :(得分:2)

您可以使用

REGEXP_REPLACE(REGEXP_REPLACE([Category], '[^0-9a-zA-Z ]+', ';'), '^(?:\s*;)+\s*|\s*(?:;+\s*)+$|\s*(?:(;)+\s*)+', '$1')

详细信息

  • REGEXP_REPLACE([Category], '[^0-9a-zA-Z ]+', ';')-用;字符替换除字母数字和空格以外的所有字符
  • REGEXP_REPLACE(..., '^(?:\s*;)+\s*|\s*(?:;+\s*)+$|\s*(?:(;)+\s*)+', '$1')-删除前导/尾随的分号,并使用单个分号缩小1个以上的分号,同时也删除了所有空格。

答案 2 :(得分:0)

删除字符串末尾的所有特殊字符,然后替换分隔符

这类似于Wiktor的解决方案,并借用了他的方法两次通过字符串。

  1. 首先,使用最小匹配为1的贪婪量词清理字符串的开头和结尾。

'(^[^a-zA-Z0-9]+)|([^a-zA-Z0-9]+$)'

  1. 用最小的分隔符1替换为,字符,贪婪地清洁“分隔符”特殊字符。

'([^a-zA-Z0-9]+)'

解决方案: REGEXP_REPLACE (REGEXP_REPLACE([Word], '(^[^a-zA-Z0-9]+)|([^a-zA-Z0-9]+$)', '' ), '([^a-zA-Z0-9]+)' , ',')

enter image description here