它沒有理由工作是,因爲字符串是不可變的,並且您不處理結果。你可以在「解決」這個問題:
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字符串是不可變的。子函數返回一個新的字符串 –