我需要从每个单词的开头和结尾删除特殊字符。但是很少有话说的很棘手。顺便说一句,我正在Tableau工作。
单词:
;#Bank#;Server#;
我用过
REGEXP_REPLACE([Category], "[^0-9a-zA-Z ]+", "")
使用此代码,单词变成BANKSERVER
。我想要在Bank
和server
之间使用逗号或分号。我该如何实现?任何可能的线索将不胜感激。
实际结果:
BANKSERVER
预期结果:
BANK,SERVER
或
BANK;SERVER
或者,如果我在正则表达式代码中添加分号:
REGEXP_REPLACE([Category], "[^0-9a-zA-Z ;]+", "")
但是,输出如下:
;BANK;SERVER;
答案 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)