【问题标题】:Java regex for image filename?图像文件名的Java正则表达式?
【发布时间】:2011-08-18 05:40:21
【问题描述】:

我必须过滤文件名以仅匹配图像(png、jpg、gif、bmp)文件,是否可以制作这样的正则表达式,或者我必须为每种文件类型使用不同的正则表达式?它也不能包含 ../../ 或 /var/app/filename.exe 等路径。

【问题讨论】:

  • 你从哪里得到这个文件路径?从浏览器?来自 FileDialog?
  • 那么你想用javascript进行验证吗?
  • 否,在 Java 服务器端。

标签: java regex


【解决方案1】:

我会使用这样的东西...这应该涵盖大多数情况,而不会过多涉及疯狂的细节...

(.*/)*.+\.(png|jpg|gif|bmp|jpeg|PNG|JPG|GIF|BMP|JPEG)$

作为一个 Java 字符串,这个正则表达式看起来像这样:

"(.*/)*.+\\.(png|jpg|gif|bmp|jpeg|PNG|JPG|GIF|BMP|JPEG)$"

希望对您有所帮助... :)

【讨论】:

    【解决方案2】:

    【讨论】:

    • 我必须提到,如果您不想在文件名中允许路径,则必须编辑该代码。我使用了 ([\w]+(\.(?i)(jpg|png|gif|bmp))$) ,这意味着文件名中只允许使用字母和数字。
    • 提供任何代码以及一些解释可能会有用。想象一下这个博客已经不存在了。
    【解决方案3】:

    很简单:

    re = ".*\\.(png|jpg|gif|bmp)"
    

    只要您不需要 UPPERCASE 和 jpeg。 :)

    【讨论】:

      【解决方案4】:

      这种模式对我有用:(.*/)*.+\.(png|jpg|gif|bmp|jpeg|PNG|JPG|GIF|BMP)$

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-19
        • 1970-01-01
        • 2012-05-15
        • 2013-05-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多