有没有办法删除诸如 之类的特殊字符*

我尝试过使用replace、、,regexp_replace但我的版本至少无法识别特殊字符。

有数百个字段,我想知道是否可以删除特定的特殊字符。

0


最佳答案
2

regex_replace将替换所有不是字母 (AZ / az) 或数字 (0-9) 或“-”或空格 (“”) 的字符:

请注意,我使用了不同的字段名称。因此,请确保用您的字段名称替换“test”!

regexp_replace("test", '[^a-zA-Z0-9- ]', '')

前:

后:

使用正则表达式,只保留数字和连字符,使用:

regexp_replace (name,'[^\\d|-]','')

:(^帽子):排除以下内容:(\\d任何数字);:|逻辑或-连字符;[]匹配特定字符(定义的字符:连字符或非数字)。因此,这会匹配所有非连字符或数字的内容,并将其替换为空字符串(删除它)。


变体,为了展示简单和正则表达式的语法如何工作replace(),请参见此处如何替换星号*

replace (name,'*','')

或者

regexp_replace (name,'\\*','')

使用正则表达式,*是一个量词,必须用 来屏蔽\\