2011-01-26 9 views
3

Apache 구성 파일에는 이미지의 gzip 압축을 피하는 행이 있습니다.무엇을 의미합니까?

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary 

myfile.*:gif과 같은 .gif 파일 이름이있을 수 있다고 생각하지 않습니다.

그래서 ?:는 무엇을 의미합니까?

답변

10

이 특정 부분 (?:gif|jpe?g|png)(gif|jpe?g|png)과 거의 똑같습니다.

차이점은 첫 번째 그룹은 괄호 안에 그룹을 '포착'하지 않는다는 것입니다. 즉, 경기를 볼 때 첫 번째 예제의 내용은 특수 그룹으로 포함되지 않습니다.

일반적으로 괄호 안에 항목을 넣으면이를 '캡처 그룹'이라고합니다. 즉, 정규 표현식을 텍스트와 일치시킨 결과를 볼 때 괄호 안의 내용은 나중에 검토 할 '그룹'에 넣습니다. (?:stuff)을 사용할 때 괄호 안의 내용은 여전히 ​​정규식으로 함께 그룹화되지만 캡처 그룹으로 간주되지 않습니다.

당신은 이미지의 무리의 파일 이름과 일치 할 경우는, 도움이 될 수 봇 파일 이름보다 더 캡처하지 :

"([^.]\.)(?:gif|png|tiff)" 

이 정규식에 대한 파일을 일치, 파일 이름 만 캡처됩니다 . 파일 확장자가 캡처 그룹에 없으므로 파일 확장자가되지 않습니다.

+0

+1 내 대답을 제거합니다. 더 나은 설명이 될 뿐이므로 링크를 추가하면 도움이 될 것입니다 ... http://www.regular-expressions.info/brackets.html – Vojta

+1

@Vojita, 당신의 대답을 계속하는 것이 좋습니다. 좋은 것을 2 개 가지고 있어도 아프지 않습니다. – jjnguy