0

こんにちは、いくつかの検証を行いたいです。以前はJSに正規表現を入れていましたが、Javaで正規表現を使用するのは初めてなので、Javaで同様の行でコードを作成しようとしました。これが私がしたことです。1)文字列の最初の文字が英数字かどうかを確認します。2) 文字列に少なくとも 1 つの数字があるかどうかを確認します。

だから私はコードを書きましたが、常にfalseを返しています.これを正しく行っているかどうかはわかりません.

 private static boolean checkEmbeddedPassword(final String field) {
            boolean returnValue=true;


            String testpatternAlpha="/^[A-Za-z0-9].+$/";


            String testNumber="/[0-9]/";
            Pattern pattern=Pattern.compile(testpatternAlpha);
            Pattern pattern2=Pattern.compile(testNumber);
            Matcher matcher = pattern.matcher(field);
            Matcher matcher2 = pattern2.matcher(field);
            boolean firstChar=matcher.matches();
            boolean numberFlag=matcher2.matches();
            System.out.println("-----the value of pwd iss-----"+field);
            System.out.println("---------Regex---------Out--put-----"+firstChar);
            System.out.println("---------Regex---------Out- for numeral-put-----"+numberFlag);
            if(firstChar){
                returnValue=false;
            }
            else if(field.contains(" "))
            {
                System.out.println("-----------cannot have space------");
                returnValue=false;
            }
            else if(numberFlag)
            {
                returnValue=false;
            }
            return returnValue;
        }
4

2 に答える 2

3

/Java の正規表現の先頭と末尾では使用しません。

これを試して...

String testpatternAlpha="^[A-Za-z0-9].+$"; //  first character in string is alphanumeric

String testNumber="[0-9]"; //test single number
于 2012-11-23T11:02:38.517 に答える
3

/Java ではプレフィックスとサフィックスは必要ありません。

String testpatternAlpha="^[A-Za-z0-9].+$";


また、あなたの状況では、Matcher.findではなくを使用したいと思うでしょうMatcher.matches。APIドキュメントで理由を読むことができます:http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Matcher.html

于 2012-11-23T11:07:05.680 に答える