1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
正則表達(dá)式修改為
String regex = "\\w+\\.(jpg|png|jpeg|bmp|gif)$";
System.out.println("aiewurkjkjk.jpg".matches(regex));//true
System.out.println("aiewurkjkjkjpg".matches(regex));//false
System.out.println("aiewurkjkjkj.png".matches(regex));//true
System.out.println("aiewurkjkjkj.gif".matches(regex));//true
樓上154538022用戶給出的正則表達(dá)式是錯(cuò)誤的,
String regex = ".*(jpg|png|jpeg|bmp|gif)$";//
System.out.println("aiewurkjkjkjpg".matches(regex));//ture。結(jié)果因該為false。
看string的api可以知道
嘗試將整個(gè)區(qū)域與模式匹配,當(dāng)且僅當(dāng)整個(gè)區(qū)域序列匹配此匹配器的模式時(shí)才返回 true。所以正則表達(dá)式后面的那個(gè)$是可有可無(wú)。
也就說(shuō)你使用xxx.matches(pattern)去匹配,需要xxx整個(gè)匹配pattern才會(huì)返回true。
你應(yīng)該想根據(jù)一個(gè)文件后綴名判斷一個(gè)文件是否是圖片,只需要匹配以.jpg,.jpeg等結(jié)尾的就可以了。
參考代碼:
public static void main(String[] args) {
System.out.println(isImg(".jpgaiewurkjkjk"));//false
System.out.println(isImg("aiewurkjkjkjpg"));//false
System.out.println(isImg("aiewurkjkjkj.png"));//true
System.out.println(isImg(".aiewurkjkjkj.gif"));//true
System.out.println(isImg("我的不是的.gif"));//true
}
public static boolean isImg(String fileName) {
Pattern pattern = Pattern.compile("\\.(jpg|png|jpeg|bmp|gif)$");
Matcher m = pattern.matcher(fileName);
if(m.find()){
return true;
}
return false;
}
添加回答
舉報(bào)