【问题标题】:Got error 'repetition-operator operand invalid' from my regexp从我的正则表达式中得到错误“重复运算符操作数无效”
【发布时间】:2019-12-11 23:06:08
【问题描述】:

我有这个正则表达式,但是当尝试在 mysql 查询语句中使用它时,我得到了 SQL 错误 [1139] [42000]: Got error 'repetition-operator operand invalid' from regexp

^((?!\.).)*.id$

从 Stackoverflow 挖掘后,我得到了 mysql 正则表达式不支持带问号 (?) 的运算符的信息。

如何让它在mysql中工作?

我的目标是过滤带有 .ID TLD 的域名。 当我使用“end-with”方法时,我遇到了以 .id 但不完全是 .id 结尾的域的问题,它可以是 .web.id 、 .co.id 、 .or.id 等。

【问题讨论】:

  • MySQL 8.0 之前,不理解? 操作符。

标签: mysql sql regex


【解决方案1】:

如果您只想要以“.id”结尾且没有“.”的字符串在此之前但“。”之前至少有一个字符,您可以尝试匹配整个字符串并使用否定字符类:

...
nmuloc REGEXP '^[^\.]+\.id$'
...

如果“.”之前是空字符串没关系,您可以将+ 量词更改为*

【讨论】:

  • 它的工作,非常感谢你
猜你喜欢
  • 2016-09-09
  • 2013-08-21
  • 2013-02-27
  • 2014-05-04
  • 2015-01-31
  • 2015-08-06
  • 1970-01-01
  • 2014-07-27
  • 1970-01-01
相关资源
最近更新 更多