#1139-从正则表达式中得到错误“重复运算符操作数无效”

我在使用正则表达式从MySQL表中选择一些结果时遇到麻烦。

我正在使用此查询

SELECT text 

FROM `articles`

WHERE content REGEXP '.*<img.*?src=\"http://www'

ORDER BY date DESC

它说

#1139 - Got error 'repetition-operator operand invalid' from regexp

我用Notepad ++测试了正则表达式,它可以工作,为什么MySQL给我这个错误,我该如何解决?

回答:

根据MySQL手册

MySQL使用Henry Spencer的正则表达式实现,旨在实现POSIX 1003.2

POSIX正则表达式不支持将问号?用作星形的非贪婪(惰性)修饰符,以及PCRE(与Perl兼容的正则表达式)之类的量词。这意味着您不能使用+?*?

看起来您只需要使用贪婪的版本,该版本仍然可以使用。为了避免类似的匹配<img style="/*some style*/" src="a.png">

<script src="www.example.com/js/abc.js">,可以使用否定的字符类:

'<img[^>]*src="http://www'

注意:"不必转义,并且.*暗指开头。

以上是 #1139-从正则表达式中得到错误“重复运算符操作数无效” 的全部内容, 来源链接: utcz.com/qa/430674.html

回到顶部