Android에서 최소 3 개 (숫자 및 특수 문자)에 대한 정규식

Long Dao

아래 조건을 충족해야하는 암호 규칙이 있습니다.

다음 중 최소 2 개 :-최소 1 개의 소문자-최소 1 개의 대문자-최소 2 개 (숫자 및 특수 문자)

다음과 같이 정규식을 작성합니다.

String oneLowercaseCharacter = ".*[a-z].*";
String oneUppercaseCharacter = ".*[A-Z].*";
String oneNumber = ".*\\d.*";
String oneSpecialCharacter = ".*[^\\`\\~\\<\\,\\>\\\"\\'\\}\\{\\]\\[\\|\\)\\(\\;\\&\\*\\$\\%\\#\\@\\!\\:\\.\\/\\?\\\\\\+\\=\\-\\_\\ ].*";
String threeNumbersAndCharacters = ".*[0-9\\^\\`\\~\\<\\,\\>\\\"\\'\\}\\{\\]\\[\\|\\)\\(\\;\\&\\*\\$\\%\\#\\@\\!\\:\\.\\/\\?\\\\\\+\\=\\-\\_\\ ].*[0-9\\^\\`\\~\\<\\,\\>\\\"\\'\\}\\{\\]\\[\\|\\)\\(\\;\\&\\*\\$\\%\\#\\@\\!\\:\\.\\/\\?\\\\\\+\\=\\-\\_\\ ].*[0-9\\^\\`\\~\\<\\,\\>\\\"\\'\\}\\{\\]\\[\\|\\)\\(\\;\\&\\*\\$\\%\\#\\@\\!\\:\\.\\/\\?\\\\\\+\\=\\-\\_\\ ].*";

그런 다음 아래와 같은 함수를 빌드합니다.

if ((Pattern.compile(oneLowercaseCharacter).matcher(s).find() && Pattern.compile(oneUppercaseCharacter).matcher(s).find())
                            || (Pattern.compile(oneLowercaseCharacter).matcher(s).find()
                                && Pattern.compile(oneSpecialCharacter).matcher(s).find()
                                && Pattern.compile(oneNumber).matcher(s).find()
                                && Pattern.compile(threeNumbersAndCharacters).matcher(s).find())
                            || (Pattern.compile(oneUppercaseCharacter).matcher(s).find()
                                && Pattern.compile(oneSpecialCharacter).matcher(s).find()
                                && Pattern.compile(oneNumber).matcher(s).find()
                                && Pattern.compile(threeNumbersAndCharacters).matcher(s).find())) {
//Do my stuff here
}

그러나 예상대로 작동하지 않습니다. 이유는 확실하지 않지만 다른 비밀번호로 테스트하면 결과가 다음과 같이 표시됩니다.

qwerty123 true (예상되지 않음)

qwerty! @ # 거짓

qwerty12. 진실

Qwerty123 참

쿼티 12. 진실

아무도 내가 놓친 곳을 알고 있습니까?

참고 : 이미 stackoverflow를 검색하고 이미 다른 곳을 찾아 위의 코드를 찾았지만 더 이상 진행할 수는 없습니다.

ROMANIA_engineer

문제는 다음 줄에 있습니다.

String oneSpecialCharacter = ".*[^\\`\\~\\<\\,\\>\\\"\\'\\}\\{\\]\\[\\|\\)\\(\\;\\&\\*\\$\\%\\#\\@\\!\\:\\.\\/\\?\\\\\\+\\=\\-\\_\\ ].*";

문자 ^는 내부의 첫 번째 위치에서 사용될 때 특별한 의미 ( "아님")를 갖습니다 [].

이것이 당신이 그것을 탈출해야하는 이유입니다.

String oneSpecialCharacter = ".*[\\^\\`\\~\\<\\,\\>\\\"\\'\\}\\{\\]\\[\\|\\)\\(\\;\\&\\*\\$\\%\\#\\@\\!\\:\\.\\/\\?\\\\\\+\\=\\-\\_\\ ].*";

이제 결과는 다음과 같습니다.

qwerty123 -> false
qwerty!@# -> false 
qwerty12. -> true
Qwerty123 -> true
Qwerty12. -> true

의 의미를 강조하는 다른 예 ^:

// the first character cannot be a
System.out.println(Pattern.compile("[^a]bc").matcher("abc").find());        // false

// the first character cannot be x, y or z, but it can be a
System.out.println(Pattern.compile("[^xyz]bc").matcher("abc").find());      // true

// the first character can be ^ or a
System.out.println(Pattern.compile("[\\^a]bc").matcher("abc").find());      // true

// the first character can be ^, x, y or z, but not a
System.out.println(Pattern.compile("[\\^xyz]bc").matcher("abc").find());    // false

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

숫자에 대한 정규식, 일부 특수 문자 및 NULL

분류에서Dev

숫자 및 특수 문자에 대한 정규식-C #

분류에서Dev

대문자 번호 및 2 개의 특수 문자에 대한 정규식

분류에서Dev

목록에서 최소 1 개의 대문자, 1 개의 소문자, 1 개의 숫자 및 1 개의 특수 문자가있는 정규식 일치 문자열

분류에서Dev

최소 8 자, 최소 1 개의 숫자 및 1 개의 특수 문자, 최대 32 자의 정규식 자바 스크립트

분류에서Dev

문자, 특수 문자 및 숫자 조합에 대한 정규식

분류에서Dev

단어의 특정 문자 및 숫자 수에 대한 정규식입니다.

분류에서Dev

정규식 : 모든 문자, 숫자 및 0 ~ 3 개의 특수 문자

분류에서Dev

4 개의 숫자, 쉼표 및 4 개의 숫자에 대한 정규식

분류에서Dev

키릴 자모 + 최소 3 자 + 숫자 및 공백 없음 + 끝에 반복 불가능한 정규식

분류에서Dev

특수 문자 사이의 숫자에 대한 정규식

분류에서Dev

특수 문자 $에 대한 정규식

분류에서Dev

최대 길이 12에 대한 정규식, 특수 문자 및 기타 기준 없음

분류에서Dev

자바 스크립트-정규식 대문자, 소문자 및 숫자 2 개

분류에서Dev

텍스트의 특수 문자 및 문자열 패턴에 대한 정규식

분류에서Dev

영숫자, 밑줄 및 문자 제한에 대한 정규식

분류에서Dev

정규식 : 최소 13 자 및 WITHIN 13 자 최대 3 자

분류에서Dev

5-30 자 길이의 문자와 숫자 조합에 대한 정규식, 대문자 4 개 이상, 소문자 2 개, 숫자 1 개 이상 포함

분류에서Dev

최소 및 최대 문자 수 정규식

분류에서Dev

소수 문자에 대한 정규식 (정규식)

분류에서Dev

PHP, 정규식에서 대문자 / 소문자 / 숫자 / 특수를 확인하는 방법

분류에서Dev

시작 및 끝의 특수 문자 및 작동하지 않는 두 개의 연속적인 문자에 대한 자바 스크립트의 정규식

분류에서Dev

C #에서 1 개의 문자와 6 개의 숫자에 대한 정규식

분류에서Dev

최소 특수 문자, 대문자 및 숫자

분류에서Dev

actionscript3에서 숫자 값 (소수 포함 또는 제외)에 대한 정규식은 무엇입니까?

분류에서Dev

preg_match에서 영숫자 및 특수 문자 정규식 하나만

분류에서Dev

소수, 구분 기호 및-+ 기호를 포함한 숫자에 대한 정규식

분류에서Dev

Java에서 문자열에 숫자와 2 개의 특수 문자 (-및,) 만 있는지 확인하려면 어떤 정규식을 사용해야합니까?

분류에서Dev

하나 이상의 문자 숫자와 정확히 하나의 특수 문자에 대한 정규식

Related 관련 기사

  1. 1

    숫자에 대한 정규식, 일부 특수 문자 및 NULL

  2. 2

    숫자 및 특수 문자에 대한 정규식-C #

  3. 3

    대문자 번호 및 2 개의 특수 문자에 대한 정규식

  4. 4

    목록에서 최소 1 개의 대문자, 1 개의 소문자, 1 개의 숫자 및 1 개의 특수 문자가있는 정규식 일치 문자열

  5. 5

    최소 8 자, 최소 1 개의 숫자 및 1 개의 특수 문자, 최대 32 자의 정규식 자바 스크립트

  6. 6

    문자, 특수 문자 및 숫자 조합에 대한 정규식

  7. 7

    단어의 특정 문자 및 숫자 수에 대한 정규식입니다.

  8. 8

    정규식 : 모든 문자, 숫자 및 0 ~ 3 개의 특수 문자

  9. 9

    4 개의 숫자, 쉼표 및 4 개의 숫자에 대한 정규식

  10. 10

    키릴 자모 + 최소 3 자 + 숫자 및 공백 없음 + 끝에 반복 불가능한 정규식

  11. 11

    특수 문자 사이의 숫자에 대한 정규식

  12. 12

    특수 문자 $에 대한 정규식

  13. 13

    최대 길이 12에 대한 정규식, 특수 문자 및 기타 기준 없음

  14. 14

    자바 스크립트-정규식 대문자, 소문자 및 숫자 2 개

  15. 15

    텍스트의 특수 문자 및 문자열 패턴에 대한 정규식

  16. 16

    영숫자, 밑줄 및 문자 제한에 대한 정규식

  17. 17

    정규식 : 최소 13 자 및 WITHIN 13 자 최대 3 자

  18. 18

    5-30 자 길이의 문자와 숫자 조합에 대한 정규식, 대문자 4 개 이상, 소문자 2 개, 숫자 1 개 이상 포함

  19. 19

    최소 및 최대 문자 수 정규식

  20. 20

    소수 문자에 대한 정규식 (정규식)

  21. 21

    PHP, 정규식에서 대문자 / 소문자 / 숫자 / 특수를 확인하는 방법

  22. 22

    시작 및 끝의 특수 문자 및 작동하지 않는 두 개의 연속적인 문자에 대한 자바 스크립트의 정규식

  23. 23

    C #에서 1 개의 문자와 6 개의 숫자에 대한 정규식

  24. 24

    최소 특수 문자, 대문자 및 숫자

  25. 25

    actionscript3에서 숫자 값 (소수 포함 또는 제외)에 대한 정규식은 무엇입니까?

  26. 26

    preg_match에서 영숫자 및 특수 문자 정규식 하나만

  27. 27

    소수, 구분 기호 및-+ 기호를 포함한 숫자에 대한 정규식

  28. 28

    Java에서 문자열에 숫자와 2 개의 특수 문자 (-및,) 만 있는지 확인하려면 어떤 정규식을 사용해야합니까?

  29. 29

    하나 이상의 문자 숫자와 정확히 하나의 특수 문자에 대한 정규식

뜨겁다태그

보관