Учитывая эту функцию re.sub и "replace" - спасибо, Ignacio, за указатель! - Я могу заменить все совпадения в моем очень длинном текстовом блобе со строкой ' * NONSENSE * ' - пока что так хорошо!
По пути я хотел бы найти подстроку в matchobj, называя ее " findkey ", поэтому я могу сделать дополнительную работу с ней...
Как это сделать?
data = re.sub('(:::[A-Z,a-z,:]+:::)', replace, data)
def replace(matchobj):
if matchobj.group(0) != '':
# this seems to work:
tag = matchobj.group(1)
# but this doesn't:
findkey = re.search(':::([A-Z,a-z]+):::', tag)
return '******************** NONSENSE ********************'
else:
return ''
Попробуй это. Вы можете совместить внутреннюю часть как часть начального подзаголовка.
import re
data = ":::::::::::BLAH:::::::::, ::::::::MORE:::::::"
def replace(matchobj):
# this seems to work:
tag = matchobj.group(0)
findkey = matchobj.group(1)
print findkey
return '******************** NONSENSE ********************'
data = re.sub(r':::(?P<inner>[A-Z,a-z]+):::', replace, data)
print data
возвращает следующее
BLAH
MORE
::::::::******************** NONSENSE ********************::::::, :::::******************** NONSENSE ********************::::
Вы ищете
findkey = re.search(':::([A-Z,a-z]+):::', tag).group()
Обратите внимание на группу(), а также этот документ может помочь.
result = plpy.execute(plan3, [ fieldid ] )
findkey
содержал? Прямо сейчас он содержит объект соответствия.