首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用,如何替换每个匹配的字符串?

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

Stack Overflow用户
提问于 2011-06-20 01:53:34
回答 1查看 5.9K关注 0票数 8

我正在使用Python (实际上是pl/python)来连续地在一个非常大的文本对象中查找一系列regex匹配项。一切都很好!每个匹配都是不同的结果,每个替换将是不同的结果,最终基于循环中的查询。

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

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

代码语言:javascript
复制
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 )  ------------------------------
EN

回答 1

Stack Overflow用户

发布于 2011-06-20 02:14:53

你想要的是re.sub()

代码语言:javascript
复制
import re

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

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

yrstrrdny

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6406211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档