다음 정규식은 무엇을합니까? 위의 정규식의다음 정규식은 무엇을합니까?
[\w+\-.]+
출력, \ w + -. +와 \ + \ w -. +는 동일하지만 나는 이유를 이해 할 수없는 무엇입니까?
테스트 문자열
sadkfj-dslk.sdjklf!sdljf
당신이 나에게 설명 할 수 있습니까?
다음 정규식은 무엇을합니까? 위의 정규식의다음 정규식은 무엇을합니까?
[\w+\-.]+
출력, \ w + -. +와 \ + \ w -. +는 동일하지만 나는 이유를 이해 할 수없는 무엇입니까?
테스트 문자열
sadkfj-dslk.sdjklf!sdljf
당신이 나에게 설명 할 수 있습니까?
백 슬래시가 불필요하기 때문에 동일합니다. 실제로 유효한 문자 범위를 나타내지 않으면 (+-.
은 문자 범위가 아닙니다) -
을 이스케이프 할 필요가 없습니다. 어쨌든 상관없이 리터럴 대시로 처리됩니다. \w
(단어 문자), +
(더하기 기호), -
(대시) 또는 .
(기간) :
주어진 정규 표현식은 하나 또는 그 이상의 이러한 문자의 찾습니다. -
이전의 백 슬래시는 불필요하므로 포함 시킬지 여부는 아무런 차이가 없습니다.
대괄호 안의 하이픈은 특별한 의미 ("범위")를 가지고 있으므로 리터럴 하이픈은 \-
으로 이스케이프되어야합니다. 그러나 특정 정규식 엔진에 따라 이스케이프 처리되지 않은 구문을 사용하지 않을 수 있습니다.이 특별한 경우에는 모호성이 없기 때문입니다.
(예를 들어, 펄은 두 버전을 적용하고 예상 결과를 생성하지만, use warnings;
으로 누락 된 백 슬래시에 대해 불평 할 것입니다.)
이는 '단어 문자'[0-9A-ZA-Z_ 일치 ] (\ w는 단어 문자와 일치 함), OR a + 문자 또는 하이픈 (\을 이스케이프 함 -) 또는 전체 중지 (이 모든 것이 두 번 이상 반복되는 경우).
공백이 없으면 일반 문자, 밑줄, plusses, 하이픈 또는 전체 중지를 포함하는 모든 문자열을 의미합니다. 간단히 말해서, 이것은 데이터베이스 항목을 찾기 위해 URL에서 문자열을 식별하는 기능입니다.
"+ to."와 일치하는 문자가 없기 때문에 이스케이프 처리가 필요하지 않으므로 아무런 차이가 없습니다. 따라서 이스케이프 처리되거나 이스케이프 처리되지 않으므로 아무런 차이가 없습니다.
고마워요, 고쳐주세요. – Death