You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式检测含内部单引号的MySQL查询语句

匹配MySQL查询中含未转义内部单引号的语句的正则表达式

适用场景

识别MySQL查询语句里,被单引号包裹的字符串内部存在未转义单引号的语法错误语句(MySQL中字符串内部的单引号需用两个单引号转义,比如'lorem''s ipsum'才是合法写法)。

正则表达式

^.*'[^']*(?<!')'(?!')[^']*'.*;$

正则说明

  • ^.*:匹配语句开头到错误片段前的任意字符
  • '[^']*:匹配一个单引号开头,后跟任意数量非单引号字符
  • (?<!')'(?!'):精准匹配单个未转义的单引号——确保该单引号前后都不是单引号,排除MySQL合法的转义写法''
  • [^']*':匹配从错误单引号到下一个闭合单引号之间的任意非单引号字符
  • .*;$:匹配剩余字符直到语句结尾的分号

示例验证

针对给出的两条SQL语句:

UPDATE blog SET BlogDesc = 'dummy texts' , BlogHeadlinePic = 'images12.png' where BlogId = 'abcdef';
update blog set BlogDesc = 'lorem's ipsum' , BlogHeadlinePic = 'images.png' where BlogId = 'abc'; #need to detect this query

第二条含错误单引号的语句会被上述正则匹配,第一条合法语句不会被匹配。

内容的提问来源于stack exchange,提问作者Nikolius Lau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 07:20:43