我使用的Java 7的下面的代碼來驗證文件的格式:Java的正則表達式的問題與量詞
private boolean validateFile(String image) {
// Get width and height on image
...
...
//Multiply by three, once for each R,G, and B value for the pixel
int entriesRequired = width * height * 3;
Pattern pattern = Pattern.compile("w=\\d+\\s+h=\\d+\\s+OK\\s+[\\d+\\s+]{" + entriesRequired + "}");
Matcher matcher = pattern.matcher(image);
return matcher.matches();
}
的文件,這是我讀過成字符串並且正在由持有image
變量,出現這樣:
"w=1\nh=2\nOK\n1\n2\n3\n4\n5\n6\n"
我期待validateFile(String image)
返回true,但它已經返回false。任何可以幫助我的正則表達式專家?
感謝, 喬希
@BackSlash如果你的意思是元字符'\ n'(換行符),那麼你錯了。 '\ s'是'[\ r \ n \ v \ t \ f]'。 – Jerry
你不需要括號什麼你重複? (.....){+ entriesRequired +} – MeBigFatGuy
您對entriesRequired的價值是什麼?我認爲你的計算錯誤。你還必須計算新的線路,它適用於你的情況12。 – morja