기본 개념
정규 표현식은 일반 문자 (예 : A에서 Z 사이의 문자)와 특수 문자 ( "Metachars")를 포함하는 텍스트 패턴입니다. 이 패턴은 텍스트를 검색 할 때 일치하는 하나 이상의 문자열을 설명합니다.
먼저 몇 가지 정규 표현식 편집기가 권장됩니다
Debuggex : https://www.debuggex.com/
pyregex : http://www.pyregex.com/
Regexper : http://www.regexper.com/
정규 표현식은 검색 및 문자열 교체 작업입니다. 정규 표현식은 정규 표현식과 같은 텍스트 편집기에서 널리 사용됩니다.
[복사] 텍스트에 지정된 특성 단어가 포함되어 있는지 확인
텍스트에 일치하는 특성 단어가 어디에 있는지 알아보십시오.
문자열의 하위 문자열과 같은 텍스트에서 정보를 추출합니다
텍스트를 수정하십시오
참고 : 일반 표현식은 일반적으로 두 가지 작업에 사용됩니다. 1. 검증, 2. 검색/교체. 확인에 사용될 때 일반적으로 확인할 전체 문자열과 일치하기 전후에 추가해야합니다. 검색/교체 할 때이 제한 사항을 추가할지 여부는 검색 요구 사항에 따라 다릅니다. 또한, 전후에 ^ 및 $ 대신 /B를 추가 할 수도 있습니다. 몇 가지를 제외 하고이 표에 나열된 일반적인 정규 표현식 전후에 제한이 추가되지 않습니다. 필요에 따라 직접 처리하십시오.
우선 순위 주문
정규 표현식을 구성한 후에는 수학적 표현처럼 평가할 수 있습니다. 즉, 왼쪽에서 오른쪽에서 우선 순위로 평가할 수 있습니다. 다음 표는 최우선 순위에서 가장 높은 우선 순위에 이르기까지 다양한 정규 표현 연산자의 우선 순위를 나열합니다.
| 연산자 | 설명하다 |
|---|---|
| / | 탈출 기호 |
| (), (? :), (? =), [] | 버팀대와 사각형 괄호 |
| *, +,?, {n}, {n,}, {n, m} | 예선 |
| ^, $, /anymetacharacter | 위치와 순서 |
정규 표현식을 만듭니다
정규 표현식을 구성하는 방법은 수학적 표현을 만드는 방법과 동일합니다. 즉, 여러 개의 metacharacters와 운영자를 사용하여 작은 표현을 결합하여 더 큰 표현을 만듭니다.
한 쌍의 분리기 사이에 발현 패턴의 다양한 성분을 넣어 정규 발현을 구성 할 수있다.
JScript의 경우, Delimiter는 한 쌍의 전방 슬래시 (/) 문자입니다. 예를 들어:
/표현/
vbscript의 경우 한 쌍의 따옴표 ( "")를 사용하여 정규 표현식의 경계를 결정합니다. 예를 들어:
코드 사본은 다음과 같습니다.
"표현"
예를 참조하십시오
코드 사본은 다음과 같습니다.
// 계정이 합법적인지 여부 (문자부터 시작, 5-16 바이트 허용, 영숫자 밑줄 허용
var re = new regexp ( "^[a-za-z] [a-za-z0-9 _] {5,19} $");
if (re.test (aaaa)) {
경고 ( "올바른 형식");
}또 다른{
경고 ( "형식 오류");
}
정규 표현식의 구성 요소는 단일 문자, 캐릭터 세트, 캐릭터 범위, 문자 간의 선택 또는 이러한 모든 구성 요소의 조합 일 수 있습니다.
일반적으로 사용되는 정규 표현식
중국어와 일치하는 정규 표현 : [/u4e00-/u9fa5]
댓글 : 중국인은 정말로 두통입니다.이 표현으로 쉽게 할 수 있습니다.
이중 바이트 문자 매치 (한자 포함) : [^/x00-/xff]
댓글 : 문자열의 길이를 계산하는 데 사용될 수 있습니다 (이중 바이트 문자 길이 미터 2, ASCII 문자 미터 1)
빈 라인 일치 정규 표현 :/n/s*/r
주석 : 빈 줄을 삭제하는 데 사용할 수 있습니다
정규 표현식 일치 HTML 태그 : <(/s*?) [^>]*>.*? <// 1> | <.*? />
댓글 : 온라인으로 순환하는 버전은 너무 나쁘고 위의 부분은 부품과 일치 할 수 있으며 복잡한 중첩 마커를 사용하는 것은 여전히 힘이 없습니다.
시작 및 끝 공백 문자와 일치하는 정규 표현 : ^/s*|/s*$
주석 : 선의 시작과 끝에서 공백 문자 (공백, 탭, 페이지 브레이크 등), 매우 유용한 표현식에서 흰색 스페이스 문자를 삭제하는 데 사용할 수 있습니다.
전자 메일 주소와 일치하는 정규 표현 : /w+ (+. ]/w+)*@wl+ (9-. ]/w+)*/./wle (.-. ]/w+)*
의견 : 양식을 확인할 때 매우 실용적입니다
정규 표현식 일치 URL : [a-za-z]+: // [^/s]*
댓글 : 온라인으로 순환하는 버전의 기능은 매우 제한적이며 위의 내용은 기본적으로 요구를 충족시킬 수 있습니다.
계정이 합법적인지 여부 (문자로 시작, 5-16 바이트가 허용, 영숫자 밑줄이 허용) : ^[a-za-z] [a-za-z0-9 _] {4,15} $
의견 : 양식을 확인할 때 매우 실용적입니다
국내 전화 번호 매칭 :/d {3}-/d {8} |/d {4}-/d {7}
주석 : 일치하는 양식은 다음과 같습니다. 0511-4405222 또는 021-87888822
Match Tencent QQ 번호 : [1-9] [0-9] {4,}
댓글 : Tencent QQ 번호는 10,000에서 시작합니다
중국 우편 번호와 일치 : [1-9]/d {5} (?!/d)
의견 : 중국의 우편 번호는 6 자리입니다
매치 ID 카드 : /d {15} | /d {18}
의견 : 중국의 ID 카드는 15 ~ 18 자리입니다
일치 IP 주소 : /d+/./d+/./d+/./d+
의견 : IP 주소를 추출 할 때 유용합니다
특정 숫자와 일치합니다
[copy] ^[1-9]/d*$ // 양수 정수와 일치합니다
^-[1-9]/d*$ // 부정적인 정수와 일치합니다
^-? [1-9]/d*$ // 정수와 일치합니다
^[1-9]/d*| 0 $ // 음이 아닌 정수 일치 (양의 정수 + 0)
^-[1-9]/d*| 0 $ // 일치하지 않는 정수 (음수 정수 + 0)
^[1-9]/d*/./d*| 0/./ d*[1-9]/d*$ // 양의 부동 소수점 번호와 일치합니다
^-([1-9]/d*/./d*| 0/./ d*[1-9]/d*) $ // 음의 부동 소수점 번호와 일치합니다
^-?
^[1-9]/d*/./d*| 0/./ d*[1-9]/d*| 0?/. 0+ | 0 $ // 부적합 플로팅 포인트 번호 (양의 부동 소수점 번호 + 0)
^(-([1-9]/d*/./d*| | 0 /./ d*[1-9]/d*)) | 0?/. 0+ | 0 $ // 일치하지 않는 플로팅 포인트 번호 (음의 부동 소수점 번호 + 0)
의견 : 다량의 데이터를 처리 할 때 유용하며 자세히 적용 할 때 수정하도록주의하십시오.
특정 문자열과 일치합니다
[copy]^[a-za-z]+$ // 26 개의 영어 문자로 구성된 문자열과 일치합니다
^[az]+$ // 26 개의 영어 편지 자본화로 구성된 문자열 일치
^[az]+$ // 26 개의 영어 문자로 구성된 문자열 일치
^[a-za-z0-9]+$ // 숫자와 26 개의 영어 문자로 구성된 문자열 일치
^/w+$ // 숫자, 26 개의 영어 문자 또는 밑줄로 구성된 문자열 일치
댓글 : 가장 기본적이고 가장 일반적으로 사용되는 표현식 중 일부
마인드 맵