【问题标题】:REGEXP_REPLACE Punctuation in RedshiftREGEXP_REPLACE Redshift 中的标点符号
【发布时间】:2017-03-01 19:38:09
【问题描述】:

我正在尝试使用 REGEXP_REPLACE 删除 varchar 中的所有标点符号。我正在使用以下内容:

regexp_replace(d.NAME, [.,\/#!$%\^&\*;:{}=\-_`~()])

但它给了我一个错误,说:

声明 1 无效。错误:“。”或附近的语法错误

如何解决此问题以删除所有标点符号?

【问题讨论】:

  • regexp_replace(d.NAME,'[^a-zA-Z]','')?
  • @vkp 这也将替换空格、数字和字母,如ñ。在大多数情况下这是不可接受的。

标签: sql regex amazon-web-services amazon-redshift


【解决方案1】:

首先,字符类中的破折号表示一个范围,除非它是第一个或最后一个......所以把它放在那里:

[.,\/#!$%\^&\*;:{}=\_`~()-]

而且,你必须把它放在引号中,大多数字符不需要转义:

regexp_replace(d.NAME, '[.,/#!$%^&*;:{}=_`~()-]')

【讨论】:

  • 工作就像一个魅力,我的朋友。似乎没有很多关于正则表达式的好资源......你的首选来源是什么?
  • 网站regexr.com 是我进行任何正则表达式测试的首选——我不能推荐它。
猜你喜欢
  • 1970-01-01
  • 2021-10-07
  • 2019-06-02
  • 2018-02-11
  • 2022-01-22
  • 2023-01-19
  • 2017-01-23
  • 2020-09-30
  • 1970-01-01
相关资源
最近更新 更多