JavaScript 정규 표현 식 의 기본 문법(추천)

관련 읽 기:
js 정규 표현 식 기본 문법(정수)
정규 표현 식 문법
정규 표현 식 은 일반 문자(예 를 들 어 문자 a 에서 z)와 특수 문자(메타 문자 라 고 함)로 구 성 된 문자 모드 입 니 다.이 모드 는 텍스트 주 체 를 찾 을 때 일치 하 는 문자열 하나 이상 을 설명 합 니 다.정규 표현 식 은 템 플 릿 으로 검색 한 문자열 과 일치 합 니 다.
정의.
JavaScript 의 정규 표현 식 은 두 가지 정의 방식 이 있 습 니 다.<%XXX%>와 일치 하 는 문자열 을 정의 합 니 다.
1.구조 함수

var reg=new RegExp('<%[^%>]+%>','g');

2.글자 양

var reg=/<%[^%>]%>/g;

g:global,전체 텍스트 검색,기본 검색 에서 첫 번 째 결과 연결 정지 i:ingore case,대소 문 자 를 무시 합 니 다.기본 대소 문자 민감 m:multiple lines,다 중 줄 검색(^와$의 의 미 를 변경 하여 각각 한 줄 에서 줄 의 시작 과 끝 이 일치 하지 않도록 합 니 다)
문자
정규 표현 식 이 사람 을 뒷걸음질 치 게 하 는 중요 한 이 유 는 전의 문자 가 너무 많아 서 조합 이 매우 많 지만 정규 표현 식 의 메타 문자(정규 표현 식 에서 특별한 의 미 를 가 진 전용 문자 로 선도 문 자 를 규정 할 수 있 습 니 다)가 많 지 않 기 때 문 입 니 다.
메타 문자:({\^$|)?*+.
모든 메타 문자 가 특정한 의 미 를 가 진 것 이 아니 라 서로 다른 조합 에서 메타 문 자 는 서로 다른 의 미 를 가지 고 분류 해 보 세 요.

문자 클래스
일반적인 상황 에서 정규 표현 식 의 한 글자(전의 문 자 는 하나 로 계산)에 대응 하 는 문자열 의 한 글자,표현 식 ab\t 의 의 미 는?

그러나 우 리 는 메타 문자[]를 사용 하여 간단 한 종 류 를 구축 할 수 있 습 니 다.클래스 란 특정한 특징 에 부합 되 는 대상 을 가리 키 는 것 입 니 다.특정한 문 자 를 가리 키 는 것 이 아니 라 표현 식[bc]을 사용 하여 문자 a 나 b 또는 c 를 같은 종류 로 분류 할 수 있 습 니 다.표현 식 은 이러한 문자 와 일치 할 수 있 습 니 다.

메타 문자[]조합 은 하나의 종 류 를 만 들 수 있 습 니 다.우 리 는 메타 문자^를 사용 하여 역방향 류/마이너스 류 를 만 들 수 있 습 니 다.역방향 류 는 XXX 류 에 속 하지 않 는 다 는 뜻 입 니 다.표현 식[^abc]은 문자 a 나 b 또는 c 의 내용 이 아니 라 는 뜻 입 니 다.

범위 류
위의 설명 에 따 르 면 우리 가 하나의 숫자 와 일치 하 기 를 원한 다 면 표현 식 은 이 렇 습 니 다.
[0123456789]
알파벳 이 라면...귀 찮 습 니 다.정규 표현 식 은 범위 류 도 제공 합 니 다.우 리 는 x-y 로 두 문 자 를 연결 하여 x 에서 y 까지 의 임 의 문 자 를 표시 할 수 있 습 니 다.이것 은 닫 힌 구간 입 니 다.즉,x 와 ybenshen 을 포함 하여 소문 자 와 일치 하 는 것 이 간단 합 니 다.
[a-z]

모든 알파벳 에 맞 추 려 면?[]로 구 성 된 클래스 내 부 는 연결 할 수 있 습 니 다.우 리 는 이렇게 쓸 수 있 습 니 다.[a-zA-Z]

미리 정 의 된 클래스
방금 정규 를 사용 하여 우 리 는 몇 가지 종 류 를 만 들 었 습 니 다.숫자,알파벳 등 을 표시 합 니 다.그러나 이렇게 쓰 는 것 도 매우 번 거 롭 습 니 다.정규 표현 식 은 흔히 볼 수 있 는 문자 와 일치 하 는 몇 가지 사전 정의 류 를 제공 합 니 다.

이러한 미리 정 의 된 클래스 가 있 으 면 정규 를 쓰 는 것 이 편리 합 니 다.예 를 들 어 우 리 는 ab+숫자+임의의 문자 와 일치 하 는 문자열 을 원 하면 ab\d 를 이렇게 쓸 수 있 습 니 다.

경계
정규 표현 식 은 자주 사용 하 는 경계 일치 문자 도 제공 합 니 다.

무책임 한 메 일 을 보 세 요.

양사
이전에 우리 가 소개 한 방법 은 모두 일치 합 니 다.만약 우리 가 20 번 연속 숫자 가 나 오 는 문자열 과 일치 하 기 를 원한 다 면,우 리 는 이렇게 써 야 합 니까?
\d\d\d\d...
이 정규 표현 식 에 양 어 를 도입 하 였 습 니 다.

양 어 를 사용 하 는 예 를 몇 개 보다.
\w+\b 바 이런 일치 단어+경계+바 이런

(/\w+\b Byron/).test('Hi Byron'); //true(/\w+\b Byron/).test('Welcome Byron'); //true(/\w+\b Byron/).test('HiByron'); //false

\d+\\d{1,3}세 자리 소수 와 일치 하 는 숫자

탐욕 모드 와 비 탐욕 모드
위 에서 소개 한 양 어 를 보면 생각 하기 좋아 하 는 학생 들 은 일치 하 는 원칙 에 관 한 몇 가지 문 제 를 생각 할 수 있 습 니 다.예 를 들 어{3,5}이라는 양 어 는 문장 에 열 번 나 타 났 다 면 그 는 매번 세 개 와 다섯 개 를 일치 시 켰 을 것 입 니 다.어차피 3,4,5 는 3~5 의 조건 을 만족 시 켰 고 양 어 는 기본 적 으로 가능 한 한 많은 일치 입 니 다.즉,모두 가 흔히 말 하 는 탐욕 모델 입 니 다.

'123456789'.match(/\d{3,5}/g); //["12345", "6789"]

탐욕 모드 가 있 는 이상 비 탐욕 모드 가 있 을 것 입 니 다.정규 표현 식 이 가능 한 한 적 게 일치 하도록 하 겠 습 니 다.즉,성공 적 으로 일치 하면 더 이상 시도 하지 않 고 방법 이 간단 합 니 다.양사 뒤에?...하면 된다

'123456789'.match(/\d{3,5}?/g); //["123", "456", "789"]

패 킷
때때로 우 리 는 양 어 를 사용 할 때 여러 문 자 를 일치 시 키 고 싶 습 니 다.위의 예 와 같이 하나 만 일치 하 는 것 이 아 닙 니 다.예 를 들 어 Byron 과 20 번 일치 하 는 문자열 을 원 합 니 다.우 리 는 Byron{20}이 라 고 쓰 면 Byro+n 과 20 번 일치 합 니 다.어떻게 Byron 을 전체 로 합 니까?()를 사용 하면 다음 목적 을 달성 할 수 있 습 니 다.우 리 는 그룹 이 라 고 부 릅 니 다.
(Byron){20}

바 이런 이나 캐 스 퍼 와 20 번 일치 하 기 를 원한 다 면 어떻게 해 야 하나 요?|문자 또는 효 과 를 사용 할 수 있 습 니 다.
(Byron|Casper){20}

우 리 는 그림 속 에#1 의 동쪽 이 있 는 것 을 보 았 다.그것 은 무엇 입 니까?그룹 을 나 누 는 정규 표현 식 을 사용 하면 일치 하 는 항목 도 그룹 에 넣 습 니 다.기본 값 은 숫자 번호 에 따라 나 누 어 집 니 다.각각 번호 에 따라 캡 처 된 그룹 내용 입 니 다.이것 은 몇 번 째 일치 하 는 항목 을 구체 적 으로 조작 하고 자 하 는 함수 에서 유용 합 니 다.
(Byron).(ok)

그룹 이 끼 워 넣 은 경우,바깥 그룹의 번호 가 앞 에 있 습 니 다.
((^|%>)[^\t]*)

때때로 우 리 는 어떤 그룹 을 포획 하 기 를 원 하지 않 습 니 다.그룹 에 추가 하기 만 하면 됩 니까?:이 그룹 내용 이 정규 표현 식 에 속 하지 않 는 다 는 것 을 의미 하 지 는 않 습 니 다.다만 이 그룹 에 번 호 를 붙 이지 않 을 뿐 입 니 다.
(?:Byron).(ok)

사실 C\#등 언어 로 그룹 을 나 누 면 이름 도 지 을 수 있 지만 자 바스 크 립 트 는 지원 하지 않 습 니 다.
전망 식

추상 적 으로 말 하 는데 예 를 들 면 good(?=Byron)

(/good(?=Byron)/).exec('goodByron123'); //['good'](/good(?=Byron)/).exec('goodCasper123'); //null(/bad(?=Byron)/).exec('goodCasper123');//null

위의 예 를 통 해 exp 1(?=exp 2)표현 식 은 exp 1 표현 식 과 일치 하지만 그 뒤의 내용 이 exp 2 일 때 만 일치 합 니 다.즉,두 가지 조건 입 니 다.exp 1(?!exp 2)유사 성
good(?!Byron)

(/good(?!Byron)/).exec('goodByron123'); //null(/good(?!Byron)/).exec('goodCasper123'); //['good'](/bad(?!Byron)/).exec('goodCasper123');//null

위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 자 바스 크 립 트 정규 표현 식 의 기본 문법(추천)에 관 한 지식 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기