查找并替换具有扩展模式的更改模式

时间:2016-10-20 14:30:39

标签: python regex replace replaceall

我喜欢这个正则表达式 我有一个像这样的简单字符串:

'<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中有数千种不同的数字,因此搜索和替换将永远存在。

任何帮助?

1 个答案:

答案 0 :(得分: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
)