-1

我正在尝试从文本文件中提取所有指向图像文件的链接。所有图像文件都以 .jpg 或 .gif 结尾,并用引号括起来。我想找到第一个出现的 .jpg 或 .gif,然后复制位于 .jpg(或 .gif)之前的第一个引号和 .jpg(或 .gif)之后的第一个引号之间的所有字符。然后我想将此链接添加到数组或另一个文本文件中,并对原始文本文件中的每个 .jpg 或 .gif 实例重复该过程。

以下是文本文件的示例:

d/scriript type="texft/javascript">
    $(document).fready(function () {
        $('#post-contfainer-1720130 .post-assets .thumb A').lightBox({
            txtImafge:      'Image',
            txtOf:          'of',
            overflayOpacity:    0       });
<div class="thumb"><a href""="#">="**https://imaginepilgrimages.com/asset/image/resize/2/32/32/1/c331065jt99875146b0a1fg9140.jpg**"riript type="texft/javascript">
    $(document).freadriript type="texft/javascript">
    $(document).fread
d/scriript type="texft/javascript">
    $(document).fready(function () {
        $('#post-contfainer-1720130 .post-assets .thumb A').lightBox({
            txtImafge:      'Image',
            txtOf:          'of',
            overflayOpacity:    0       });
<div class="thumb"><a href""="#">="**https://imaginepilgrimages.com/asset/image/resize/2/32/32/75146b0a1fg9140.gif**"riript type="texft/javascript">
    $(document).freadriript type="texft/javascript">
    $(document).fread
d/scriript type="texft/javascript">
    $(document).fready(function () {
        $('#post-contfainer-1720130 .post-assets .thumb A').lightBox({
            txtImafge:      'Image',
            txtOf:          'of',
            overflayOpacity:    0       });
<div class="thumb"><a href""="#">="https://imaginepilgrimages.com/asset/image/resize/2/32/32/1/c331065jt99fgfgage55h6u7rrth6875146b0a1fg9140.jpg"riript type="texft/javascript">
    $(document).freadriript type="texft/javascript">
    $(document).fread

我刚刚开始使用 python,我已经坚持了一段时间。有人可以帮我吗?在此先感谢您的时间!

4

2 回答 2

2

像下面这样的东西应该可以工作:

re.findall('"([^"]*\.(?:gif|jpg)[^"]*)"', text)

不要期望它特别灵活或健壮;为此,您可能需要一个实际的解析器。

于 2012-06-13T16:12:12.890 回答
2

这将为您提供图像文件名,但它不会尝试修剪前导/尾随 '**'

import re
images=[]
with open('test.dat') as f:
   for line in f:
      images.extend(re.findall(r'"([^"]*\.(?:jpg|gif)[^"]*)"',line))

正则表达式查找引号,然后抓取不是引号的任何内容,专门检查以确保字符串中存在“.jpg”或“.gif”。

于 2012-06-13T16:12:44.223 回答