2016-10-20 4 views
0

Im strugling с этим регулярным выражением У меня есть простая строка так:Найти и заменить меняющийся рисунок с расширенным рисунком

'<SQL>GEOMETRYTYPE = 10 AND RPAREA = 1112</SQL>' 

ее номер меняется, и я хочу, чтобы заменить

import re 
text1 = '<SQL>GEOMETRYTYPE = 10 AND RPAREA = 1112</SQL>' 
re.sub('<SQL>GEOMETRYTYPE = 10 RPAREA = '\d+,text1) 

с этим:

'<SQL>GEOMETRYTYPE = 10 AND RPAREA = 1112 AND NAME EXSISTS NO </SQL>' 

пытаюсь:

import re 
text1 = '<SQL>GEOMETRYTYPE = 10 AND RPAREA = 1112</SQL>' 
re.sub('<SQL>GEOMETRYTYPE = 10 RPAREA = '\d+,text1) 

В RPAREA есть тысячи различных номеров, поэтому поиск и замена потребуются навсегда.

Любая помощь?

ответ

0

Вы можете сделать это с этим регулярным выражением:

<SQL>GEOMETRYTYPE\s*=\s*(\d+) AND RPAREA\s*=\s*(\d+) 

который использует группы захвата, чтобы захватить два числовых значения, которые затем могут быть использованы в новой строке с re.sub:

sql_str = re.sub(
    r"<SQL>GEOMETRYTYPE\s*=\s*(\d+) AND RPAREA\s*=\s*(\d+)", 
    "<SQL>GEOMETRYTYPE = \\1 AND RPAREA = \\2 AND NAME EXISTS NO", 
    sql_str 
)