Snowflake SQL - 使用 Regexp_Like 时转义序列无效

问题描述 投票:0回答:1

我一直在将某些内容从基于 netezza 的 SQL 脚本迁移到 Snowflake,并且我的连接子句之一的一部分包含以下几行:

AND regexp_like(hist.Description, p.RegexPattern, 'i')

这在 Netezza 上运行良好,但是在 Snowflake 中运行时,在大约 2 分钟的运行时间后出现以下错误:

100048 (2201B): Invalid regular expression: '^Renewal\b.*\bDraft\b.*\bPending\b\h+\bNon-Renewal\b.*', invalid escape sequence: \h

有人遇到过这个错误吗? regexp_like 函数有点新,所以它可能很简单,但无法在网上找到任何有关修复的信息。不确定这个错误到底告诉我什么?

sql regex snowflake-cloud-data-platform
1个回答
1
投票

\h 是 Perl 5 转义序列,用于匹配每个 Perl 正则表达式类 的水平空白。 雪花正则表达式似乎不支持\h。最接近的替代方案是使用 \s。请注意,\s 将匹配一些 \h 不会匹配的字符,因此您可能需要在进行替换之前验证是否具有这些字符。有关详细信息,请参阅 Perl 参考。

© www.soinside.com 2019 - 2024. All rights reserved.