首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取目录中所有文件的两个关键字之间的字符串

提取目录中所有文件的两个关键字之间的字符串
EN

Stack Overflow用户
提问于 2018-09-15 11:12:37
回答 2查看 39关注 0票数 1

我在以下文件夹中有一堆.xml文件:"C:\Users\Kavinda \Desktop\手册\XMLs\Output“

我希望在整个文件夹中搜索所有.png文件引用。例如,一个.xml文件具有以下内容:

代码语言:javascript
复制
        <li class="list1-item clearer">
            <div class="ie8fixer" />
            <p class="step2-list1-nonmark-heading">The following image is an example.</p>
            <div class="bigImage"><img src="../image/vl7ie02.png" alt="VL7IE02" class="figure-graphic--bigImage" />
            </div>
        </li>

我需要的东西,将通过每个.xml文件,并选择名称的.png文件。因此,对于上面的例子,输出将是:

代码语言:javascript
复制
vl7ie02.png

我已经尝试使用Notepad++搜索字符串".png",但是对于某些.xml文件,一行包含了大量信息,而png文件名出现在标记的末尾。因此,Notepad++不会在输出窗口中显示这一点--即使有匹配。然后,我必须找到文件和相关的行,并从那里抓取它。

我真的不想这么做,因为目录中有6000多个xml文件!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-15 14:44:07

使用以下Regex:

代码语言:javascript
复制
img.*?src=".*(?<="|\/)(\w+\.(?:png|jpg|jpeg|gif))"

更详细的解释是在Regex101上。

  • 请注意,图像路径始终位于img标记和src属性中。
  • 还请注意,src属性内容总是包装在引号"之间。
  • (?<="|\/)是一个积极的背景,它表明图像名称和扩展名必须在引号字符"或前斜杠/ (必须转义)之后。
  • \w+\.将文件名与点匹配。如果你想要前任的话。文件名中的空格,使用.+
  • (?:png|jpg|jpeg|gif)是可能的扩展。如果您不关心它们,请使用\w+代替。
  • 在捕获组括号(\w+\.(?:png|jpg|jpeg|gif))中用点和扩展名包装文件名。
票数 0
EN

Stack Overflow用户

发布于 2018-09-15 11:52:07

使用grep -Eo "[^/]+\.png" *.xml

如果您正在使用windows,请参阅Windows环境下的Grep

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52344156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档