2013-08-06 4 views
2

하면 ruby-doc for regular expressions 통과하는 동안, 나는 & & 연산자를 구현하기위한 예를 건너 왔어요 :루비 정규 표현식 사용 또는 문자 클래스 내에서

/[a-w&&[^c-g]z]/ # ([a-w] AND ([^c-g] OR z)) 
# This is equivalent to: 
/[abh-w]/ 

을 나는

/[a-w&&[^c-g]]/ 

가 동일시 것이라고 이해

/[abh-w]/ 

"^"는 정규 표현식에서 제외되어야하는 기호를 나타 내기 때문입니다.

그러나 "z"도 포함되지 않은 이유에 대해 궁금합니다. 왜 해당하는 정규 표현식되지 않은 :

/[abh-wz]/ 

나는 정규 표현식에 아주 새로운 오전, 훨씬 덜은 루비에서 정규 표현식에 대한 세부 사항은, 그래서 어떤 도움을 크게 감사합니다!

답변

0

페이지가 명시 말한다

/[a-w&&[^c-g]z]/ # ([a-w] AND ([^c-g] OR z)) 
# This is equivalent to: 
/[abh-w]/ 

는 "Z"는 왼쪽 "AND"라는 용어에 포함되어 있지 않으므로 정합 할 수 없다.

참조 : "사과와 배 모두 동시에있는 모든 것은 배가 포함되지 않습니다." 사과와 사과 (사과 또는 배) 만 사과입니다. 마찬가지로 aa-w[^c-g]z에 있으므로 일치합니다. z이 왼쪽에 없으므로 "AND"가 충족되지 않으므로 전체식이 실패합니다.

+0

죄송합니다. 제 부분에서 오타가 있었는데, "왜 동일한 정규 표현식이 아닌가요?"라고 말하고자했습니다. 나는 질문을 편집했습니다 – shiggiddie

+0

나머지 답변 주소가 있습니다. 나는 이제 불필요한 설명을 제거 할 것이다. – Amadan