我需要一个正则表达式,它将返回包含在以指定文本块开头的双引号之间的文本,并以特定文件扩展名(例如.txt)结束。我正在使用urllib2来获取页面的html(html非常简单)。
基本上,如果我有像
这样的东西<tr>
<td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td>
<td><a href="Client-8.txt">new_Client-8.txt</a></td>
<td align="right">27-Jun-2012 18:02 </td>
</tr>
应该回到我身边
Client-8.txt
返回值包含在双引号内。我知道文件名如何以“Client-”开头,文件扩展名为“.txt”。
我正在玩r.search(正则表达式,字符串),其中我输入的字符串是页面的html。但我对正则表达式很不满意。
谢谢!
答案 0 :(得分:4)
您不应该使用正则表达式来执行此任务。使用BeautifulSoup编写脚本来处理HTML并找到所需的元素要容易得多。
在您的情况下,您应该搜索<a>
属性以href
开头并以Client-
结尾的所有.txt
个元素。这将为您提供所有文件的列表。
答案 1 :(得分:1)
soup = BeautifulSoup('<tr><td valign="top"><img src="/icons/unknown.gif" alt="[ ]"></td><td><a href="Client-8.txt">new_Client-8.txt</a></td><td align="right">27-Jun-2012 18:02 </td>')
x=soup.findAll('a')
for i in x:
if '.txt' in i['href']:
print(i['href'])