使用Regexp_like在Where子句中使用Regexp_e时,数量太大



我尝试运行以下查询:

select * from table where regexp_like('^{{', text_field)

并有以下错误:

数量太大,无法重复范围

认为regexp_like可能会使重复计数运算符混淆{,我也尝试了以下变体:

select * from table where regexp_like('^{{', text_field)
select * from table where regexp_like('^[{][{]', text_field)
select * from table where regexp_like('^[[:punct:]]{2}', text_field)

什么都没有。目前,text_field like '{{'就足够了,但我可能想包括一个更灵活的版本,需要正则表达式。我的方法怎么了?此错误消息是什么意思?

您以错误的方式使用prestodb regex_like函数:

regexp_like(string, pattern)

评估正则表达模式并确定是否是 包含在字符串中。此功能类似于类似 操作员,期望该模式只需要包含 字符串,而不是需要匹配所有字符串。换句话说, 这执行包含操作而不是匹配操作。你 可以使用 ^和$:

锚定图案来匹配整个字符串
SELECT regexp_like('1a 2b 14m', 'd+b'); -- true

相关内容

  • 没有找到相关文章

最新更新