【问题标题】:Find image strings with Regex in Notepad++在 Notepad++ 中使用正则表达式查找图像字符串
【发布时间】:2016-01-23 02:47:10
【问题描述】:

请提供可用于扫描任何类型的图像字符串的通用语法,其中只需传入正确的文件类型扩展名即可获得匹配。一种更理想的方法(虽然不是必需的)是一种传入多个文件扩展名类型的方法。

在 Google Chrome 浏览器中导航到文件目录时会生成以下内容:

Name    Size    Date Modified
[parent directory]      
BamboNature.jpg 40.0 kB 10/22/15, 2:42:00 PM
bjs1.jpg    80.7 kB 10/22/15, 3:04:55 PM
BroodyChick.jpg 55.2 kB 10/22/15, 2:42:16 PM
EarthsBest01.jpg    95.9 kB 10/22/15, 3:04:38 PM
HonestDiaper.jpg    42.5 kB 10/22/15, 2:42:29 PM
Huggies_1.jpg   44.3 kB 10/22/15, 3:04:28 PM
Huggies_2.jpg   46.7 kB 10/22/15, 3:04:02 PM
Luvs_2.jpg  53.0 kB 10/22/15, 2:01:07 PM
Luvs.jpg    49.6 kB 10/22/15, 3:03:48 PM
Munchkin.jpg    40.6 kB 10/22/15, 3:03:31 PM
Pampers.jpg 49.6 kB 10/22/15, 3:03:24 PM
Pampers02.jpg   40.2 kB 10/22/15, 3:03:15 PM
parents-choice-unscented-ba.jpg 42.6 kB 10/22/15, 2:45:16 PM
Target-diapers.jpg  41.0 kB 10/22/15, 2:43:05 PM
Thumbs.db   63.5 kB 10/22/15, 3:06:20 PM

所需的输出将是删除图像以外的所有内容,在这种情况下,所有图像都具有.jpg 文件扩展名类型。

预期结果

BamboNature.jpg
bjs1.jpg
BroodyChick.jpg
EarthsBest01.jpg
HonestDiaper.jpg
Huggies_1.jpg
Huggies_2.jpg
Luvs_2.jpg
Luvs.jpg
Munchkin.jpg
Pampers.jpg
Pampers02.jpg
parents-choice-unscented-ba.jpg
Target-diapers.jpg

同样,这应该能够应用于任何文件类型,并且将是一个独立的正则表达式,以消除文件目录列表中的混乱。

【问题讨论】:

    标签: regex string replace find notepad++


    【解决方案1】:

    我可能会使用这样的正则表达式。我写了它,所以它甚至可以做包含空格的文件名。如果你同时做整个文本,记得打开多行。

    ^.*?\.\S{1,3}
    

    说明

      ^.*?\.\S{1,3}
          Beginning of line or string
          Any character, any number of repetitions, as few as possible
          Literal .
          Anything other than whitespace, between 1 and 3 repetition
    

    特别是对于记事本++,您可以使用查找和替换功能来使用这些。确保您取消勾选“。匹配换行符”然后执行:

    Find what    : (^.*?\.\S{1,3})(.*)
    Replace with : \1
    

    【讨论】:

    • 我测试过,它可以工作。您是否还可以添加针对特定文件类型的自定义。您提供的正则表达式没有删除 thumbs.db 尽管它应该有。我基本上是在询问文字的语法以及在哪里应用它。
    • 你说它应该用于“任何文件类型”。 .db 仍然是一种文件类型。但是,如果您想指定确切的扩展名。删除 "\S{1,3}" (不带引号)部分并替换为 "(jpg|png|gif)" (不带引号)。确保不匹配大小写,否则 JPG、jPg 和 jpg 都是不同的扩展名。
    • “反转”您提供的正则表达式的语法是什么。也就是去掉图片,保留垃圾?
    • 替换为可以更改为引用捕获组。捕获组只是括号内的一组事物。将替换为 \2 或 \3 以引用不同的捕获组。
    猜你喜欢
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2012-12-04
    • 2020-10-07
    • 1970-01-01
    相关资源
    最近更新 更多