Snowflake表中匹配数字后接双引号或空格加双引号的正则表达式查询需求
在Snowflake中查找包含数字+双引号或数字+空格+双引号的记录
没问题!要精准定位Snowflake表中符合你描述格式的记录,我们可以用正则表达式来实现,完美覆盖你提到的两种场景。
核心正则表达式
针对你给出的6"(数字直接后跟转义双引号)和7 "(数字+空格+转义双引号)这两种格式,推荐使用下面的正则:
\d+\s?"
让我拆解一下这个表达式的逻辑:
\d+:匹配一个或多个连续数字(比如单个数字6、多位数123都能覆盖)\s?:匹配0个或1个空格(?表示可选,刚好兼容有空格和无空格的两种情况)":匹配你示例中的HTML转义双引号字符串
Snowflake查询示例
把这个正则用到查询里,写法如下(记得替换成你的表名和列名):
SELECT * FROM your_target_table WHERE REGEXP_LIKE(your_target_column, '\d+\s?"');
补充说明
如果你的表中存储的是未转义的双引号(比如直接是6"或7 "),只需要把正则里的"换成"即可:
\d+\s?"
匹配验证
这个正则会匹配以下内容:
6"✅7 "✅123"✅45 "✅
不会匹配这些不符合规则的内容:
abc"❌(没有前置数字)6xyz"❌(数字和双引号之间有其他字符)"6❌(双引号在数字前面)
内容的提问来源于stack exchange,提问作者vvazza




