作为标题,我有问题,在寻找句子,或在我的情况下,一个mysql查询字符串,有单引号内的一个封闭的单引号单词。
例如:
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
1条答案
按热度按时间ggazkfy81#
试试这个:
^
行/字符串的开头。.*
匹配零个或多个字符,注意这将匹配'lorem's ipsum'
之前的所有字符串。'
匹配单引号,我将其命名为quote1,例如,这是'lorem's ipsum'
中的第一个单引号,位于单词lorem
之前。(?:[^'=
;]*'){2}非捕获组。
{2}`表示匹配整个组两次。[^'=
;]*匹配除
'、
=、```和
;之外的零个或多个字符,例如,这将匹配
'lorem's ipsum'中的单词
lorem`'
匹配一个单引号,我将其命名为quote2,例如,这是'lorem's ipsum'
中的第二个单引号,它位于单词lorem
之后。[^'=
;]*匹配除了
'、
=、```和
;之外的零个或多个字符,例如,这将匹配
'lorem's ipsum'中的字符串
s ipsum`。'
匹配一个单引号,我将其命名为quote3,例如,这是'lorem's ipsum'
中的第三个单引号,它位于单词ipsum
之后。.*
匹配零个或多个字符,注意这将匹配'lorem's ipsum'
之后的所有字符串;
确保您的查询中的字符串以;
结尾。$
确保它是行/字符串的结尾。参见regex demo
如果你只想得到像
'lorem's ipsum'
这样的东西,而不是整个查询,那么就使用这个正则表达式。参见regex demo