정규 표현 식 을 한 가지 예 로 쉽게 배 울 수 있 습 니 다.

정규 표현 식 의 문법 은 더 이상 말 하지 않 겠 습 니 다.여러분 은 스스로 관련 자 료 를 검색 하여 공부 할 수 있 습 니 다.본 논문 에서 예 를 들 어 에서 본 것 으로 보고 정규 표현 식 에 대해 진일보 한 이 해 를 가지 기 때문에 공유 했다.
예시

//        URL      ,           
var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
var url = "http://www.ora.com:80/goodparts?q#fragment";
var result = parse_url.exec(url);
var names = ["url", "scheme", "slash", "host", "port", "path", "query", "hash"];var i;
for (i = 0; i < names.length; i++) {
 document.writeln(names[i] + ": " + result[i] + "<br/>");
}

//           :
url: http://www.ora.com:80/goodparts?q#fragment
scheme: http
slash: //
host: www.ora.com
port: 80
path: goodparts
query: q
hash: fragment

해석 하 다.
다음은 parse 를 분해 합 시다url 의 각 부분 에서 어떻게 일 하 는 지 보 세 요.
^
^문 자 는 이 문자열 의 시작 을 표시 합 니 다.이것 은 닻 입 니 다.exec 는 URL 이 아 닌 접 두 사 를 건 너 뛰 지 말고 처음부터 URL 과 같은 문자열 만 일치 하도록 안내 합 니 다.
(?:([A-Za-z]+):)?
이 인 자 는 프로 토 콜 이름 과 일치 하지만,그 뒤에 다음 을 따 를 때 만 일치 합 니 다.(?:...)비 포획 형 그룹(noncapturing group)을 표시 합 니 다.접미사이 그룹 을 선택 할 수 있 음 을 표시 합 니 다.0 번 이나 1 번 반복 하 는 것 을 표시 합 니 다.(..)포획 형 그룹 을 표시 합 니 다.포획 형 그룹 은 일치 하 는 텍스트 를 복사 해서 result 그룹 에 넣 습 니 다.모든 포획 형 그룹 은 하나의 번 호 를 지정 합 니 다.첫 번 째 포획 형 그룹의 번 호 는 1 이기 때문에 이 그룹 에 일치 하 는 텍스트 복사 본 은 result[1]에 나타 납 니 다.[...]문자 클래스 를 표시 합 니 다.A-Za-z 라 는 문자 류 는 대문자 26 개 와 소문 자 26 개 를 포함한다.연결 문자-표시 범 위 는 A-Z 입 니 다.접미사+이 문자 류 는 한 번 또는 여러 번 일치 합 니 다.이 그룹 뒤에 문자 가 따라 옵 니 다.글자 에 따라 일치 합 니 다. 
(\/{0,3})
이 인 자 는 포획 형 그룹 2 로 매 칭//입 니 다.\/일치 하 다이 정규 표현 식 의 끝 문자 로 잘못 해석 되 지 않도록\(역 슬 래 쉬)로 의 미 를 바 꿉 니 다.접미사{0,3}표시/0~3 회 일치 합 니 다.
([0-9.\-A-Za-z]+)
이 인 자 는 포획 형 그룹 3 입 니 다.호스트 이름 과 일치 합 니 다.하나 이상 의 숫자,알파벳,또는-문자 로 구 성 됩 니 다.-범 위 를 나타 내 는 연결 문자 와 헷 갈 리 지 않도록\-로 전 의 됩 니 다.
(?::(\d+))?
이 선택 할 수 있 는 인 자 는 포트 번호 와 일치 합 니 다.이것 은 사전 설정 입 니 다.하나 이상 의 숫자 를 더 해서 구 성 된 시퀀스 입 니 다.\d 는 숫자 문 자 를 표시 합 니 다.하나 이상 의 숫자 로 구 성 된 숫자 열 은 캡 처 형 그룹 4 로 캡 처 됩 니 다.
(?:\/([^?#]*))?
이 인자 도 선택 할 수 있 는 그룹 입 니 다.경로 와 일치 합 니 다.이 그룹 은 하나 로 시작 합 니 다.다음 문자 클래스[^?\#]하나의^로 시작 하면,이것 은 이 종류의 포함 제 거 를 표시 합 니까?\#이외 의 모든 문자 와.*이 문자 클래스 는 0 번 이나 여러 번 일치 합 니 다.
내 가 이곳 에서 처리 하 는 것 은 엄밀 하지 않다 는 것 을 주의해 라.이 종 류 는 일치 합 니까?\#이외 의 모든 문 자 는 줄 끝 문자,제어 문자,그리고 여기 서 일치 하지 않 는 문 자 를 포함 합 니 다.대부분의 경우,그것 은 우리 가 기대 하 는 대로 할 수 있 지만,일부 악성 텍스트 는 누 출 될 위험 이 있 을 수 있다.엄밀 하지 않 은 정규 표현 식 은 흔히 볼 수 있 는 안전 구멍 의 발원지 이다.엄밀 하지 않 은 정규 표현 식 을 쓰 는 것 이 엄밀 한 정규 표현 식 을 쓰 는 것 보다 훨씬 쉽다. 
(?:\?([^#]*))?
이 인 자 는 하나 로 하나 로?시작 할 선택 가능 한 그룹 입 니 다.캡 처 형 그룹 6 을 포함 합 니 다.이 그룹 은 0 개 이상 의 비\#문 자 를 포함 합 니 다.
(?:#(.*))?
이 인 자 는\#로 시 작 된 선택 가능 한 그룹 입 니 다.줄 끝 자 를 제외 한 모든 문자 와 일치 합 니 다.
$
$이 문자열 의 끝 을 표시 합 니 다.그것 은 이 URL 의 끝 부분 에 더 이상 의 내용 이 없다 는 것 을 보증한다.
이 간단 한 예 를 통 해 여러분 들 이 정규 표현 식 에 대해 더욱 진일보 한 이 해 를 가지 게 되 었 다 고 믿 습 니 다.여러분 들 의 학습 이 즐 겁 기 를 바 랍 니 다!

좋은 웹페이지 즐겨찾기