在这里学习的机会。我有一种情况,我正在更新文件中的某些属性。我有一个更新文件的功能:
def update_tiapp(property, value):
print 'update_tiapp: updating "%s" to "%s"' % (property, value)
for line in fileinput.input(os.path.join(app_dir, 'tiapp.xml')): # , inplace=True
if property is 'version':
line = re.sub(r'(<version>).*?(</version>)', '\g<1>%s\g<2>' % value, line.strip(), flags=re.IGNORECASE)
elif property is 'brand':
line = re.sub(r'(<property name="brand" type="string">).*?(</property>)', '\g<1>%s\g<2>' % value, line.strip(), flags=re.IGNORECASE)'\g<1>%s\g<2>' % value, line.strip(), flags=re.IGNORECASE)
elif property is 'banner-bmp':
line = re.sub(r'(<banner-bmp>).*?(</banner-bmp>)', '\g<1>%s\g<2>' % value, line.strip(), flags=re.IGNORECASE)
elif property is 'dialog-bmp':
line = re.sub(r'(<dialog-bmp>).*?(</dialog-bmp>)', '\g<1>%s\g<2>' % value, line.strip(), flags=re.IGNORECASE)
elif property is 'url':
line = re.sub(r'(<url>).*?(</url>)', '\g<1>%s\g<2>' % value, line.strip(), flags=re.IGNORECASE)
除了dialog-bmp
& ,所有条件都很好banner-bmp
。由于某种我无法理解或找到的原因,条件不匹配。如果我将属性和条件更改为dialog
,python 很乐意匹配并为我进行更改。
哇?!
这是一个简单的改变,我不介意做,但我想理解。
把一切都搞砸的连字符是什么?我们不是只是在这里进行字符串匹配,还是在引擎盖下发生了我没想到的事情?