正则表达式匹配包含单词的文件名,无论大小写

时间:2011-01-30 19:56:43

标签: regex

我需要一个正则表达式,它匹配所有情况下包含单词.png的{​​{1}}类型的任何文件名。 所以它应该匹配

icon

任何帮助表示赞赏!! 谢谢! PS:我在java

3 个答案:

答案 0 :(得分:7)

像@Sebastian P提到的那样:

/^.*icon.*\.png$/i

除非我将i标志添加到末尾以将其标记为不区分大小写。

答案 1 :(得分:4)

如果您只需要验证文件名,这应该可以解决问题:

Pattern regex = Pattern.compile("^.*icon.*\\.png$", Pattern.CASE_INSENSITIVE);

如果您还获取路径,并且想要提取文件名,请使用:

Pattern regex = Pattern.compile("(?<=^|[\\\\/])([^\\\\/]*icon[^\\\\/]*\\.png)$", Pattern.CASE_INSENSITIVE);

要解释这一点:我对\/使用否定的character classes来确保所有内容都是文件名的一部分,然后我确保直到开始文件名为lookbehind

另见:

答案 2 :(得分:0)

你需要的模式是这样的:

(?xsiu) \A .* icon .* \. png \z