我在以下文件夹中有一堆.xml文件: “ C:\ Users \ Kavinda JD \ Desktop \ Manual \ XMLs \ Output”
我希望在整个文件夹中搜索所有.png文件引用。 例如,一个.xml文件具有以下内容:
<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文件名称的内容。 因此,对于上面的示例,输出为:
vl7ie02.png
我已经尝试使用Notepad ++搜索字符串“ .png”,但是对于某些.xml文件,一行包含很多信息,并且png文件名出现在标签的末尾。因此,即使有匹配项,Notepad ++也不会在输出窗口中显示此内容。然后,我必须转到文件和相关行,然后从那里获取它。
我真的不想这样做,因为目录中有超过6000个xml文件!
答案 0 :(得分:0)
使用grep -Eo "[^/]+\.png" *.xml
如果您使用的是Windows,请参见Grep for Windows
答案 1 :(得分:0)
使用以下正则表达式:
img.*?src=".*(?<="|\/)(\w+\.(?:png|jpg|jpeg|gif))"
更详细的解释在[Regex101] [2]上。
img
标签和src
属性中。src
属性内容始终包裹在引号"
之间。(?<="|\/)
是一个正向后视,表示图像名称和扩展名必须在引号字符"
或反斜杠/
后( 逃脱)。\w+\.
将文件名与点匹配。如果你想前。文件名中的空格,请使用.+
。(?:png|jpg|jpeg|gif)
是可能的扩展名。如果您不关心它们,请改用\w+
。(\w+\.(?:png|jpg|jpeg|gif))
内用点号和扩展名包裹文件名。