我有一些html文件,其中包含文件名包含空格的文件的链接。例如,
The rain in spain ...
<a href="/path/filename with space.xls">Filename</a>
falls mainly on the plain.
<a href="/path/2nd filename with space.doc">2nd Filename</a>
文件中经常有这样的多个链接。我想替换文件名本身内的空格,而不是触摸文件中其他地方的空格。例如:
<a href="/path/filename_with_space.xls">Filename</a>
我已尝试使用SED,但我似乎无法将替换隔离在2个正则表达式模式之间(sed似乎逐行工作)。
任何帮助都将不胜感激。
答案 0 :(得分:3)
Do not use regex for this problem。使用html解析器。这是python中使用BeautifulSoup的解决方案:
from BeautifulSoup import BeautifulSoup
with open('Path/to/file', 'r') as content_file:
content = content_file.read()
soup = BeautifulSoup(content)
for a in soup.findAll('a')
a['href'] = a['href'].replace(" ", "_")
with open('Path/to/file.modified', 'w') as output_file:
output_file.write(str(soup))