正则表达式帮助java验证

时间:2012-11-23 10:58:23

标签: java regex

您好我想做一些验证。我曾经把正则表达式放在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;
        }

2 个答案:

答案 0 :(得分:3)

我们不会在java中的正则表达式的开头和结尾使用/

试试这个......

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

String testNumber="[0-9]"; //test single number

答案 1 :(得分: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