替换HTML文件中子字符串中的空格

时间:2013-04-03 19:03:19

标签: html regex sed

我有一些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似乎逐行工作)。

任何帮助都将不胜感激。

1 个答案:

答案 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))