gpt4 book ai didi

python - 使用 python finditer,如何替换每个匹配的字符串?

转载 作者:太空狗 更新时间:2023-10-30 00:57:34 26 4
gpt4 key购买 nike

我正在使用 Python(实际上是 pl/python)在一个非常大的文本对象中连续查找一系列正则表达式匹配项。这工作正常!每次匹配都是不同的结果,每次替换都会是不同的结果,最终基于循环内的查询。

目前,我很乐意用任何 文本替换 rx 中的每个匹配项,这样我就可以理解它是如何工作的。有人可以给我一个替换匹配文本的明确示例吗?

match.group(1) 似乎正确地指示了匹配的文本;这是做事的方式吗?

plan3 = plpy.prepare("SELECT field1,field2 FROM sometable WHERE indexfield = $1", 
[ "text" ])

rx = re.finditer('LEFT[A-Z,a-z,:]+RIGHT)', data)

# above does find my n matches...

# ------------------- THE LOOP ----------------------------------
for match in rx:
# below does find the 6 match objects - good!

# match.group does return the text
plpy.notice("-- MATCH: ", match.group(1))

# must pull out a substring as the 'key' to an SQL find (a separate problem)
# (not sure how to split based on the colon:)
keyfield = (match.group(1).split, ':')
plpy.notice("---------: ",kefield)

try:
rv = plpy.execute(plan3, [ keyfield ], 1 )

# --- REPLACE match.group(1) with results of query
# at this point, would be happy to replace with ANY STRING to test...
except:
plpy.error(traceback.format_exc())

# ------------------- ( END LOOP ) ------------------------------

最佳答案

你想要re.sub()相反。

import re

def repl(var):
return var.group().encode('rot13')

print re.sub('[aeiou]', repl, 'yesterday')

yrstrrdny

关于python - 使用 python finditer,如何替换每个匹配的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6406211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com