찾아

2016-10-20 2 views
0

임이 정규 표현식 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 
)