문제

I already Read the Post on Regular Expression in Java for validating username

I tried to do it myself. with JAVA 1.7

String value="12345_-6zA";
Boolean result= value.matches("[a-zA-Z0-9_-]");
System.out.println(result);

I also Tried

String value="12345a";
Boolean result= value.matches("[a-zA-Z0-9_-]")
System.out.println(result);

But both gives me result "False" , the String value only contained the char the regex said. I cant figure out why it returned false.

도움이 되었습니까?

해결책

You are missing quantifier + which would make sure to match 1 or of those characters in your character class:

Use this:

boolean result = value.matches("[a-zA-Z0-9_-]+");

Or even better:

boolean result = value.matches("[\\w-]+");

Since \w is equivalent of [a-zA-Z0-9_]

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top