DrL*_*Lou 5 python iterator plpython
我正在使用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 ) ------------------------------
Run Code Online (Sandbox Code Playgroud)
你想要的re.sub().
import re
def repl(var):
return var.group().encode('rot13')
print re.sub('[aeiou]', repl, 'yesterday')
Run Code Online (Sandbox Code Playgroud)
yrstrrdny
| 归档时间: |
|
| 查看次数: |
3741 次 |
| 最近记录: |