"abcdefghij"와 같은 문자 집합이 있고이 문자를 사용하는 경우이 문자를 사용하여 임의의 암호를 생성합니다. 생성 된 암호는 예를 들어 6자를 가질 수 있습니다. tho 이웃 문자가 동일하지 않고 문자가 두 번 이상 반복되지 않도록 정규식을 사용하여 암호의 유효성을 검사하는 방법?정규식 반복 문자 수
답변
당신은 같은 것을 사용할 수 있습니다. 이처럼 쓸 수있는 자바 정규식에서
:
^(?:(.)(?!\1|(?:.*?\1){2}))*\z
AFAIK는이이 편지는 최대에 두 번 표시 보장, 특히 간단한 정규 표현식 (수행 할 수 없습니다. 또한
[^a]*(a[^a]*(a[^a]*))
[^b]*(b[^b]*(b[^b]*))
....
과 같은 표현의 무리를 할 수있는 (매칭에 실패 검증을 의미한다) :
[^a]*aa[^a]*
[^b]*bb[^b]*
그러나 이것은 좋은 생각이 아니다 분명
문자를 캡처 그룹으로 처리 할 수 어쩌면 함께 반복하지 않는 것이 조건. ,하지만 난 거의 다른 하나는 정규식으로 확인할 수 없다는 것을 확신합니다.
BTW ... 왜 정규식에 집착합니까? 이러한 검사를 프로그래밍하는 것은 간단합니다. 정규 표현식은 여러 사례에서 유용하지만 모든 검사가 정규식으로 수행 될 수있는 것은 아닙니다. 펄 인용
/^
(?:(.)
(?!\1) # neighbor characters are not identical
(?!(?>.*?\1){2}) # character does not occur more than twice
)*
\z/x
지원하지 않을 경우, 원자 그룹을 제거 할 수 있습니다 :
뭔가 일반적인 것이 필요합니다. –
어떤 사람들은 문제에 직면 할 때, "나는, 내가 정규 표현식을 사용합니다 알고있다."생각 이제 그들은 두 가지 문제가 있습니다. - Jamie Zawinski
정규 표현식에 적절한 문제 도메인이 아닙니다. 이 시나리오에서 작동 할 수있는 무언가를 할 수 있습니다. 네이티브 Java에서 알고리즘을 작성하면 앞으로 계속 유지하기가 쉬울 것이므로 다음 사람은 필수 암호에 대한 다음 규칙을 추가하는 방법을 결정하기 위해 일부 암호화 된 정규 표현을 해독 할 필요가 없습니다. UPPERCASE
자와 적어도 하나의 숫자 등이 있어야합니다.
- 1. 반복 된 문자를 깨는 정규식
- 2. 구두점이있는 반복 단어를위한 정규식
- 3. 정규식 (VBA) - 반복
- 4. MySQL REGEXP 반복 문자
- 5. 문자 집합 반복 방법
- 6. 문자열의 반복 문자 테스트
- 7. 악센트 부호가있는 문자 정규식
- 8. 반복 문자 제거
- 9. 정규식 패턴 선택 문자
- 10. 정규식, 특정 문자 제외
- 11. 정규식 제거 여분의 문자
- 12. ColdFusion에서 정규식 문자
- 13. 정규식 : 삭제 흰색 문자
- 14. VB.net 정규식 문자 구문
- 15. 정규식 문자 클래스 빼기
- 16. 정규식 교류 경우 문자
- 17. 정규식 임의의 문자
- 18. 정규식 - 특수 문자? - 파이썬
- 19. 자바 정규식 : 캡처 그룹 반복
- 20. 문자 클래스를 반복 할 수 있도록이 정규식 역전 알고리즘을 어떻게 리팩터링해야합니까?
- 21. 범위의 문자 수를 테스트하는 정규식
- 22. Java 정규식 최초로 일치하는 문자
- 23. 재 작성 정규식, URL 문자
- 24. 자바 정규식 "단일 공백 문자"
- 25. 알 수없는 반복 그룹을 캡처하는 정규식
- 26. 첫 문자 만 대문자로 문자열을 사용할 수 있습니다 (정규식)
- 27. 정규식 패턴과 일치하는 첫 번째 문자 집합을 결정할 수 있습니까?
- 28. 재귀를 사용하지 않고 문자열에서 반복 문자 제거
- 29. 정규식 - 탈출 문자 대 경계 문자 (^ 및 $) (\ A와 \의 Z)
- 30. 문자, 공백 및 ñ 문자 만 받아들이는 Javascript 정규식
어떤 프로그래밍 언어로 제공됩니까? – Qtax
자바에서 이것을 필요로합니다. –