Sql 在where子句中使用regexp_时,重复范围的数字太大
我尝试运行以下查询:Sql 在where子句中使用regexp_时,重复范围的数字太大,sql,regex,presto,Sql,Regex,Presto,我尝试运行以下查询: 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_fi
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_字段就足够了,但我可能想包括一个更灵活的版本,它需要正则表达式。我的方法有什么问题?这个错误消息意味着什么?您以错误的方式使用了类似prestodb regex_的函数:
regexp_like(string, pattern)
计算正则表达式模式并确定它是否为
包含在字符串中。此函数类似于
运算符,希望模式只需要包含在
字符串,而不需要匹配所有字符串。换句话说,
这将执行包含操作而不是匹配操作。您
可以通过使用^和$锚定模式来匹配整个字符串:
SELECT regexp_like('1a 2b 14m', '\d+b'); -- true