• 締切済み

javaの正規表現について

入力さた文字列を正規表現を使用して内容を確認したいんですが、条件はa~z 0~9 特殊文字?+%&#などを組み合わせた8文字以内。 [0-9a-z] 特殊文字と文字数の制限方法がわからないので、アドバイスお願いします。

みんなの回答

回答No.2

JavaでHello World > 正規表現編 http://www.hellohiro.com/regex.htm

u-mesh12
質問者

お礼

参考URLみて色々試してみたのですが、上手くいかなかったので自分でメソッド作りました。javaの場合特殊文字をそのまま使うと¥を付けたり色々と手間がくうので、unicodeを引用し、そこから使わない文字だけをチョイスして定義しました。突発的に作成したので、あまり良いソースではないかもしれませんが、またアドバイスあればお願いします。 /* !=33 "=34 #=35 $=36 %=37 &=38 '=39 (=40 )=41 *=42 +=43 ,=44 -=45 .=46 /=47 :=58 ;=59 <=60 ==61 >=62 ?=63 @=64 [=91 \=92 ]=93 ^=94 _=95 `=96 {=123 |=124 }=125 ~=126 使用不可 "=34 '=39 @=64 */ public static boolean StrCheck(String s){ boolean b = false; int len = s.length(); char y[] = s.toCharArray(); //ユーザ側 char c1 = (char)34; //char型変換 char c2 = (char)39; char c3 = (char)64; for(int i=0; i<len; i++){ if((y[i] == c1) | (y[i] == c2) | (y[i] == c3)){ b = false; break; } else{ b = true; } } return b; }

  • dd44
  • ベストアンサー率28% (151/521)
回答No.1

Perlしか知らないんだけど、同じだと思うので。 [0-9a-z?+%&#]{0,8} かな。 [0-9a-z?+%&#]{,8} でも同じ。 記号は文字コードが連続していれば、 [0-9a-z!-/]{,8} こんな感じで"!-/"指定できるはず。 ハイフン使って文字コードでも範囲指定はできると思います。(Unicodeの文字コードは調べて。。)

参考URL:
http://www.sixnine.net/regexp/
u-mesh12
質問者

お礼

似ているみたいですが、javaの取得方法があるみたいですね。Unicodeを使うというのは活用させていただきます。アドバイスありがとうございました。

関連するQ&A