下記のような条件の正規表現を書きたいのですが、うまくいきません。
条件
・改行区切りの8桁以内の数字が3つ以内ならOK
「12345678\n12345678\n12345678」は、OK
「12345678\n12345678\n12345678\n」は、NG ★これがうまくいきません
「12345678\n」は、OK
「12345678\n\n」は、OK
「12345678」は、OK
「」は、OK
「1」は、OK
「123456789」は、NG
・「\n」でsplitする方法は、NG
ソース
lang
1public boolean testFilevaild() { 2 //String str = "12345678\n12345678\n12345678"; // OK 3 String str = "12345678\n12345678\n12345678\n"; // ★NGとしたいがmatchしてしまう 4 //String str = "12345678\n"; // OK 5 //String str = "12345678\n\n"; // OK 6 String regex = "^([0-9]{0,8}\n){0,2}([0-9]{0,8})$"; 7 Pattern p = Pattern.compile(regex); 8 Matcher m = p.matcher(str); 9 return m.find(); 10}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/12/08 22:30
2014/12/09 11:26