2012-08-08 5 views
3

누구든지 "? ="정규식을 사용할 때 무엇을합니까?"? ="정규식에서 무엇을합니까?

password.matches("(?=.*\\d.*\\d.*)^[\\w]{8}.*$"); 

감사 : 는 여기에 내가 해독하려고 코드 단편의 예입니다.

+0

https://www.google.com/search?q=question+mark+equals+regex ... [첫 번째 히트] (http://www.regular-expressions.info/lookaround.html)를 클릭하십시오.). –

답변

6

그것은 positive lookahead입니다. 이 표현에서 비밀번호는 적어도 두 자리 이상이어야합니다 (\d).

또한 룩어하지 않는 입력, 그것은 단지 주장이다 소비 있습니다.

예를 들어, 당신의 정규 표현식에서 lookahead 부분 ((?=.*\\d.*\\d.*))은 password이 적어도 두 자릿수를 포함하고 나머지 표현식은 전체 문자열을 소비한다고 주장하고 적어도 8 단어 문자를 매치하려고합니다 [a-zA-Z_0-9]).

3

LookAhead입니다. 위치에 지정된 표현식이 오는 지 확인하는 너비 너비 일치. 일치 (

  • 합니다 (내다에 의해 시행) 두 자리 숫자를 포함하는 문자열
  • 8 단어 문자로 시작 시작 : 시나리오에서

    http://www.regular-expressions.info/lookaround.html

    는 해당 문자열을 찾고 있습니다 정규 표현식의 나머지 부분에서)

lookahead는 실제로 일치 항목의 일부가 아닙니다. 단어 경계 (\b) 또는 문자열 시작 부분 (^)과 매우 유사합니다.