我们想要匹配另一个单词周围的两个特定字符,例如,要匹配单词ben周围的-_

abentest    - not match
bentest     - not match
aben        - not match
a-ben       - match
a_ben       - match
ben-test    - match
a-ben-test  - match
a_ben-test  - match

它可以通过积极的向前看和像.*((?<=[_-])(ben)|(ben)(?=[_-])).*一样的向前看来完成.

但是,前视和后视不支持BigQuery正则表达式re2.在BigQuery中执行此操作的替代方法是什么?

推荐答案

您可以通过使用正则表达式替换来表达此无环视图:

.*(?:[_-]ben|ben[_-]).*

这是一个工作正常的regex demo.

Sql相关问答推荐

如何在SQL查询中只比较日期时间的年份和月份(而忽略日期比较)?

如何解决Error:operator is not unique:unknown—unknown在一个动态SQL查询?""""

从列的不同值创建列

SQL查询:合并2个表

如何从多行数据中获取一行合并数据?

为什么两个不同的窗口函数给出不同的排序结果?

解析SQL Server中的嵌套JSON

将日期时间转换为日期格式

数据库SQL-CTE命名空间(错误?)使用临时视图

属于(日期)范围类型及其交集的总权重​

同一表的Oracle SQL更新(含YTD合计)

如何解释 SQL Server 中的 Foxpro 语法?

SQL SUM Filter逻辑解释

SQL Server中使用min()和max()从选定的特定值id表中删除不必要的时间

如何在 SQL 中将两行(或多行)jsonb 数组合并为一行

多行状态下的分组查询判断状态

在 BigQuery 数据集中查找表大小和占总数据集大小的百分比

SELECT 用于 Parent、Children 和 ORDER BY [Order] 列

如何在 RavenDB Studio (RQL) 中插入更新文档

Postgres 窗口函数未按预期工作