它没有理由工作是,因为字符串是不可变的,并且您不处理结果。你可以在“解决”这个问题:
x =re.sub(r'width="[0-9]{2,4}"','width="400"',x)
x =re.sub(r'height="[0-9]{2,4}"','height="400"',x)
话虽这么说这是一个非常糟糕的主意,以处理与正则表达式 HTML/XML。假设你有一个标签<foo altwidth="1234">
。现在你会改变它为<foo altwidth="400">
你想要吗?可能不会。
可以例如使用BeautifulSoup:
soup = BeautifulSoup(x,'lxml')
for tag in soup.findAll(attrs={"width":True})
tag.width = 400
for tag in soup.findAll(attrs={"height":True})
tag.height = 400
x = str(soup)
在这里,我们代替所有标签与width
属性width="400"
并与height="400"
一个height
所有标签。你可以把它多由例如只接受<img>
标签先进,如:
soup = BeautifulSoup(x,'lxml')
for tag in soup.findAll('img',attrs={"width":True})
tag.width = 400
for tag in soup.findAll('img',attrs={"height":True})
tag.height = 400
x = str(soup)
拿去......不解析/修改HTML/XML与正则表达式...等工具BeautifulSoup/XSLT/.. –
这并不完全回答我的问题,虽然我会看看它:) – Tastro
Python字符串是不可变的。子函数返回一个新的字符串 –