我很难理解Python正则表达式库中的group
方法。在这种情况下,我尝试根据匹配对象对字符串进行替换。基于匹配对象的字符串替换(Python)
即,我想(分别与rep1
和rep2
)取代匹配的对象(在此实例中+
和\n
)与所述my_dict
字典一个特定的字符串。
content = '''
Blah - blah \n blah * blah + blah.
'''
regex = r'[+\-*/]'
for mobj in re.finditer(regex, content):
t = mobj.lastgroup
v = mobj.group(t)
new_content = re.sub(regex, repl_func(mobj), content)
def repl_func(mobj):
my_dict = { '+': 'rep1', '\n': 'rep2'}
try:
match = mobj.group(0)
except AttributeError:
match = ''
else:
return my_dict.get(match, '')
print(new_content)
,但我得到了None
随后t
由IndexError
计算v
时。
任何解释和示例代码将不胜感激。
很难猜测你的代码是应该做的(有许多语法错误,压痕坏了,逻辑不清)。更好地提供一个例子来描述你想达到的目标。 – TomR8
@ TomR8道歉!我修复了所有语法问题和拼写错误(希望)。 –