【发布时间】:2016-11-24 14:55:56
【问题描述】:
我很难理解 Python 正则表达式库中的 group 方法。在这种情况下,我尝试根据匹配的对象对字符串进行替换。
也就是说,我想用my_dict字典中的特定字符串(分别为rep1和rep2)替换匹配的对象(本例中为+和\n)。
从这个question和answer可以看出, 我试过这个:
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)
但是在计算v 时,我得到None 对应t,后跟IndexError。
任何解释和示例代码将不胜感激。
【问题讨论】:
-
很难猜出你的代码应该做什么(有很多语法错误,缩进被破坏,逻辑不清楚)。最好提供一个示例来描述您想要实现的目标。
-
@TomR8 抱歉!我修复了所有语法问题和拼写错误(希望如此)。
标签: python regex python-3.x