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