gpt4 book ai didi

regex - 为 Redshift 重复正则表达式

转载 作者:行者123 更新时间:2023-11-29 13:48:26 25 4
gpt4 key购买 nike

我想从我的 Redshift 表中的列中提取特殊字符(标点符号和表情符号)。我一直在这个动态测试器中测试正则表达式函数:

http://regexr.com

这个在动态测试器上工作,用于拉取非空格字符:[^a-zA-Z\s]

但是在 Redshift 中,它仍然会提取空格并且只提取第一个特殊字符,无论是问号还是表情符号。

根据 Redshift 文档,它确实支持 regexp_substr 函数:http://docs.aws.amazon.com/redshift/latest/dg/REGEXP_SUBSTR.html

我在 Redshift 中有以下查询:

select
*
, regexp_substr(device_contact_name,'[^\sa-zA-Z]') as special_characters
from table

例如,如果该字段有“Daniel!”它会返回“!”但如果该字段有“丹尼尔!”它会返回“”

如果该字段有“Daniel!!”我希望结果返回“!!”

关于如何正确消除结果中的空格并返回所有特殊字符的想法?

提前致谢!

最佳答案

反斜杠字符是默认的转义字符,所以你应该将它加倍:

select * , regexp_substr(device_contact_name,'[^\\sa-zA-Z]+') as special_characters from table

关于regex - 为 Redshift 重复正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44595340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com