在 Snowflake 中使用正则表达式过滤与句子/单词的精确匹配

2023-12-13

我想过滤与特定单词或句子匹配的列。例如,如果我选择这个词anti用于过滤,在以下行中:

this is anti-pattern
antimosquitos products
the word anti is cool

我只想保留最后一个,因为它是唯一一个与整个匹配模式匹配的整体,而不是在另一个单词内。

我尝试过使用RLIKE我总是得到一个FALSE值,但我不明白为什么。我期望有一个TRUE至少在以下 SQL 语句之一中的值:

SELECT RLIKE ('Spray antimosquitos', '\bantimosquitos\b', 'i') as p1;
SELECT RLIKE ('Spray antimosquitos', '\santimosquitos\s', 'i') as p1;
SELECT RLIKE ('Spray antimosquitos', '\santimosquitos', 'i') as p1;
SELECT RLIKE ('Spray antimosquitos', '\santimosquitos', 'i') as p1;

然而,这种情况并非如此。我尝试过其他形式,例如:

SELECT RLIKE ('Spray antimosquitos', '\b antimosquitos \b', 'i') as p1
SELECT RLIKE ('Spray antimosquitos', '*antimosquitos*', 'i') as p1
SELECT RLIKE ('Spray antimosquitos', ' antimosquitos ', 'i') as p1

而且我无法获得返回值 TRUE。

我的 RLIKE 有什么问题吗?


你需要

  • 确保反斜杠加倍,因为反斜杠用于字符串文字中以创建字符串转义序列(例如\t对于选项卡,\n用于换行等)
  • 确保模式匹配整个字符串,就是这样RLIKE作品。通常通过添加来启用.*在图案的两端。

所以,在你的情况下,你可以使用

'.*\\bantimosquitos\\b.*'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Snowflake 中使用正则表达式过滤与句子/单词的精确匹配 的相关文章

  • Sublime Text 中的非捕获组正则表达式不起作用

    I m trying to remove all lingering spaces between tags So I try to select them with a regex span span 我的正则表达式是 gt lt 我试图
  • 如何在 Python 中只替换一次正则表达式?

    所以现在 re sub做这个 gt gt gt re sub DELETE THIS I want to DELETE THIS472 go to DON T DELETE THIS847 the supermarket I want to
  • 正则表达式替换以删除空格并将逗号更改为句点

    我有以下价值观 10 000 00 10 000 00 750 00 750 00 1 000 000 00 1 000 000 00 并需要以下结果 10000 00 10000 00 750 00 750 00 1000000 00 1
  • 如何在 BigQuery/SQL 中将行转置为包含大量数据的列?

    我在将 BigQuery 中的大量数据表 15 亿行 从行转置为列时遇到问题 我可以弄清楚如何在硬编码时使用少量数据来完成此操作 但是对于如此大量的数据 该表的快照如下所示 CustomerID Feature Value 1 A123 3
  • 获取每月第二个星期二的日期

    有没有办法使用 T SQL 语法找出每月第二个星期二的日期 例如 三月是十二号 四月是九号 您可以通过此方法查找 2013 年所有 第二个星期二 select dateadd day 8 datediff day 1 dateadd mon
  • 从存储过程返回 int 值并在 ASP.NET 代码中检查它以验证登录表单

    当我多次尝试但没有得到有效结果时 使此代码运行的真实顺序是什么 SQL存储过程的代码 set ANSI NULLS ON set QUOTED IDENTIFIER ON GO ALTER PROC dbo login proc usern
  • BigQuery 标准 SQL 中具有不同架构的联合表

    附加具有不同架构的表的最佳方法是什么 表 0 架构 表1 架构 这很好用 SELECT img1 NULL as img2 FROM xxx staging table0 UNION ALL SELECT img1 img2 FROM xx
  • 需要 SQL 选择查询帮助

    我的问题类似于SQL选择组查询 https stackoverflow com questions 11407601 sql select group query 但模式发生了变化 我想要不同的结果 如下所述 给定链接的解决方案没有给我正确
  • 扩展 PHP 正则表达式以涵盖“srcset”和“style”属性

    我创建了一个 WordPress 插件 可以将所有链接变成协议相关 URL https en wikipedia org wiki Wikipedia Protocol relative URL 删除http and https 基于我在中
  • SQL Server 2008中与其他列的排序树

    我有一个使用它实现树的表层次结构ID column 样本数据 People Girls 1 Zoey 1 1 Kate 1 2 Monica 1 3 Boys 2 Mark 2 1 David 2 2 这是使用的顺序层次结构ID列作为排序列
  • 在 sed 中插入换行符 (Mac OS X)

    如何在 sed 的替换部分插入换行符 此代码不起作用 sed s 1234 n 1 g input txt gt output txt 其中 input txt 是 test1234foo123bar1234 和output txt应该是
  • 将静态值添加到 SQL 查询的结果

    我想知道是否有一种方法可以通过 SQL 查询来完成此任务 我有一个表 我们称之为 LISTOFTHINGS 它有两个感兴趣的字段 ID 和 NAMEOFTHING 我想要做的是构造一个查询 以便返回的是该查询的结果 SELECT ID NA
  • count(distinct) over (partition by... 在 Oracle SQL 中不起作用

    我想数一下distinct day number过去 30 天 但是 distinct 函数不能与over 如果我删除distinct 它会给我总数day number but day number可以有很多重复的 所以这就是为什么我想添加
  • mysql 将 varchar 字段排序为整数

    我的表中有一个 varchar 字段 我想对其进行排序 但我需要将此字段作为整数处理 意思是如果按文本排序 顺序是 19 2 20 但我想得到正确的顺序 2 19 20 谁能帮我 我不知何故没有设法运行查询CAST 我总是得到Error C
  • 连接到 SQL Server 数据库 C#-WinForms

    我正在制作一个桌面应用程序 我希望用户必须登录才能充分使用该程序 我已经在 www winhost com 我的网站的托管位置 上创建了一个数据库 但现在我不知道该怎么办 我一直在使用 google 和 msdn 我想知道如何以编程方式将新
  • HQL:从 Eager 表中获取连接集合

    我有四张桌子 RootNode Will return multiple root nodes SubNode Will return one sub node per root node SubNodeChildren1 Will ret
  • 如何查找列表/集合是否包含在另一个列表中

    我有一个产品 ID 列表 我想找出哪些订单包含所有这些产品 订单表的结构如下 order id product id 1 222 1 555 2 333 显然我可以通过 PHP 中的一些循环来做到这一点 但我想知道是否有一种优雅的方法可以纯
  • SQL Server 查看主键

    有没有办法在 sql server 中为视图提供主键 我知道在oracle中这是可能的 我不关心更新它的只读视图 但其他人正在 ms access 中使用它 所以我希望显示我知道正确的约束 是的 您可以创建一个索引视图 http msdn
  • 在前两个冒号上分割字符串

    我想在前两个冒号上拆分一列字符串 但不在任何后续冒号上拆分 my data lt read table text my string some data 123 34 56 78 100 87 65 43 21 200 a4 b6 c888
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d

随机推荐