为什么我的 MySQL REGEXP 查询失败并显示'重复运算符操作数无效”?

Barbara Streisand
发布: 2024-11-26 15:54:11
原创
595 人浏览过

Why Does My MySQL REGEXP Query Fail with

正则表达式失败:“重复运算符操作数无效”

尝试执行以下 MySQL 查询时:

SELECT text 
FROM `articles` 
WHERE content REGEXP '.*<img.*?src=\"http://www' 
ORDER BY date DESC
登录后复制

您遇到错误:#1139 - 从正则表达式中收到错误“重复运算符操作数无效”。尽管正则表达式在 Notepad 中正常运行,但 MySQL 拒绝了它。

理解问题:POSIX 与 PCRE

MySQL 正则表达式引擎遵循 POSIX 1003.2,缺乏对问号的支持(?) 作为量词中的非贪婪修饰符( 和 )。因此,您不能雇用?和 ?

解决方案:使用贪婪量词

要解决此问题,请使用量词的贪婪版本,它仍然足以满足您的预期目的。尽管如此,为了防止不必要的元素匹配,例如:

<img>
登录后复制

合并否定字符类,如下所示:

'<img[^>]*src="http://www'
登录后复制

请记住, " 字符不需要转义,并且 .*开头是隐含的。

以上是为什么我的 MySQL REGEXP 查询失败并显示'重复运算符操作数无效”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板