4

我需要一个正则表达式,它将返回给我包含在双引号之间的文本,该双引号以指定的文本块开头,并以特定的文件扩展名(比如 .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(regex, string) 我输入的字符串是页面的 html。但我讨厌正则表达式。

谢谢!

4

2 回答 2

4

您不应为此任务使用正则表达式。使用BeautifulSoup编写脚本来处理 HTML 并找到所需的元素要容易得多。

在您的情况下,您应该搜索其属性以 . 开头和结尾的所有<a>元素。这将为您提供所有文件的列表。hrefClient-.txt

于 2012-06-29T20:56:27.480 回答
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'])
于 2012-06-29T21:05:06.760 回答