鉴于此re.sub和'替换'功能 - 谢谢,Ignacio,指针! - 我能用字符串' * NONSENSE * '替换我的长文本blob中的所有匹配项 - 到目前为止,非常好!
一路上,我想在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 ''
答案 0 :(得分:0)
答案 1 :(得分:0)
试试这个。您可以将内部部分作为初始子调用的一部分进行匹配。
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 ********************::::