python的正则替换

python的正则替换

$sql='select a,b,... from dfdf ';
$count_sql = preg_replace('/(?<=select).+?(?=from)/si',' count(*) ',$sql);


如在PHP中,想把 $sql 中的 'select a,b,... from dfdf ' 替换成 'select count(*) from dfdf '

在python 中要怎么实现?

我做得不对,如下:

>>> import re
>>> a='/(?<=select).+?(?=from)/si'
>>> sql='select a,b,ab from dsfsdf d d desc'
>>> repl=' count(*) '
>>> result = re.sub(a, repl, sql)
>>> result
'select a,b,ab from dsfsdf d d desc'
解决了


reobj    = re.compile(r'(?<=select).+?(?=from)')   
result    = reobj.sub(' count(*) ', sql)
其实不用搞那么复杂了,现在不支持子查询的db是少数,直接在外边加一个select count(*) from (XXX)就可以了阿