要找出哪些提交的SQL查询以LIMIT子句结尾,请使用以下正则表达式:
re_end_has_limit = re.compile(
r'LIMIT\s+(\d+|\(\d+\)|\(\s+\d+\)|\(\s+\d+\s+\))($|;$|\s+;$|\s+;\s+$)',
re.IGNORECASE)
这符合以下&按预期工作。它匹配以下内容:
LIMIT 1
LIMIT (1)
LIMIT ( 1 )
LIMIT 1;
LIMIT (1);
LIMIT ( 1 );
LIMIT 1 ;
LIMIT (1) ;
LIMIT ( 1 ) ;
LIMIT 1 ;
LIMIT (1) ;
LIMIT ( 1 ) ;
注意:最后3个条目包含尾随空格字符。
然而,看看正则表达式,我觉得有一种方法可以把它写得更短但是还没有能够解决它。
答案 0 :(得分:1)
怎么样:
LIMIT(\s+\d+|\s*\(\s*\d+\s*\))\s*;?\s*$
答案 1 :(得分:0)
答案 2 :(得分:-1)
我对SQL查询不熟悉,但查看您的示例我认为这应该可以找到所有LIMIT子句:
re_end_has_limit = re.compile(r'LIMIT[ \(]+\d', re.g)