используя python finditer, как я могу заменить каждую совпадающую строку?

Я использую 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 )  ------------------------------
5
задан DrLou 20 June 2011 в 01:53
поделиться