JavaScript 학습 총화 (8) 정규 표현 식
기본 개념
정규 표현 식 은 일반 문자 (예 를 들 어 a 에서 z 사이 의 자모) 와 특수 문자 ('원 문자' 라 고 함) 를 포함 한 텍스트 모드 입 니 다.패턴 설명 은 텍스트 를 검색 할 때 일치 하 는 문자열 하나 이상 을 설명 합 니 다.
우선 정규 표현 식 편집기 Debuggex 를 추천 합 니 다.https://www.debuggex.com/PyRegex:http://www.pyregex.com/Regexper:http://www.regexper.com/
정규 표현 식 은 검색 및 문자열 교체 작업 입 니 다.정규 표현 식 은 텍스트 편집기 에서 광범 위 하 게 사 용 됩 니 다. 예 를 들 어 정규 표현 식 은 다음 과 같 습 니 다.
, :
설명: 정규 표현 식 은 보통 두 가지 작업 에 사 용 됩 니 다.
1. ,2. / 。
검증 에 사용 할 때 전체 검증 문자열 과 일치 하도록 앞 뒤로 ^ $
를 추가 해 야 합 니 다.검색 / 교체 시 이 한정 을 추가 할 지 여 부 는 검색 요구 에 따라 결정 되 며, 이 밖 에 \b
가 아 닌 앞 뒤 ^ $
를 추가 해 야 할 수도 있다.이 표 에 열 거 된 정규 표현 식 은 개별적 인 것 을 제외 하고 앞 뒤 에 어떠한 제한 도 추가 하지 않 았 으 니 필요 에 따라 스스로 처리 하 십시오.우선권 순서
정규 표현 식 을 구성 한 후에 수학 표현 식 처럼 값 을 구 할 수 있다. 즉, 왼쪽 에서 오른쪽으로 우선권 순서에 따라 값 을 구 할 수 있다.다음 표 는 최고 우선 순위 부터 최저 우선 순위 까지 각종 정규 표현 식 연산 자의 우선권 순 서 를 보 여 줍 니 다.
조작 부호
묘사 하 다.
\
전의 부
(), (?:), (?=), []
괄호
*, +, ?, {n}, {n,}, {n,m}
한정 부호
^, $, \anymetacharacter
위치 와 순서
문자 클래스 일치
문자
매 칭
[...]
괄호 안의 임의의 문자
1
괄호 안에 없 는 임의의 문자
.
줄 바 꿈 문자 와 다른 유 니 코드 줄 종지 부 를 제외 한 임의의 문자
\w
ASCII 문자 로 구 성 된 모든 단 어 는 [a - zA - Z0 - 9] 와 같 습 니 다.
\W
ASCII 문자 로 구 성 된 단어 가 아 닌 단 어 는 2 와 같 습 니 다.
\s
유 니 코드 공백 문자
\S
유 니 코드 공백 문자 가 아 닌 모든 문자
\d
모든 ASCII 숫자 는 [0 - 9] 에 있 습 니 다.
\D
ASCII 숫자 를 제외 한 모든 문 자 는 3 과 같 습 니 다.
\b
퇴 격 직접 량
반복 문자 일치
문자
매 칭
{n,m}
이전 항목 과 최소 n 회 일치 하지만 m 회 를 초과 할 수 없습니다.
{n,}
이전 n 회 이상 일치
{n}
이전 n 회 일치
?
이전 항목 과 0 번 또는 1 번 일치 합 니 다. 즉, 이전 항목 은 선택 할 수 있 습 니 다. {0, 1} 과 같 습 니 다.
+
이전 항목 과 1 회 또는 여러 번 일치 합 니 다. {1,}
*
이전 항목 과 0 번 또는 여러 번 일치 합 니 다. {0,}
문자 클래스: 닻 문자 일치
메타 문자 / 메타 기호
매 칭
$
문자열 의 끝 과 일치 합 니 다. 여러 줄 검색 에서 한 줄 의 끝 과 일치 합 니 다.
^
문자열 의 시작 과 일치 합 니 다. 여러 줄 검색 에서 한 줄 의 시작 과 일치 합 니 다.
\A
일치 하 는 문자열 시작 부분 만
\b
단어 경계 와 일치 합 니 다. 단어 가 [] 안에 있 을 때 유효 하지 않 습 니 다.
\B
비 단어 경계 일치
\G
현재 검색 의 시작 위치 와 일치 합 니 다.
\Z
일치 하 는 문자열 끝 이나 줄 끝
\z
문자열 끝 에 만 일치
문자 클래스: 기록 문자 일치
메타 문자 / 메타 기호
일치 상황
(string)
역방향 참조 에 사용 할 그룹
\ 1 또는 $1
첫 번 째 그룹의 내용 과 일치 합 니 다.
\ 2 혹은 $2
두 번 째 그룹의 내용 과 일치 합 니 다.
\ 3 혹은 $3
세 번 째 그룹의 내용 과 일치 합 니 다.
정규 표현 식 수식 자
i
g ,
m ,^ ,$
RegExp 방법
RegExp
대상 은 세 가지 방법 이 있다. test()、exec() compile()。
test(): 。 。
exec(): , ,
compile() , 。
String 대상 의 정규 표현 식 방법
방법.
속뜻
match(pattern)
pattern 의 하위 문자열 이나 null 을 되 돌려 줍 니 다.
replace(pattern, replacement)
replacement 으로 pattern 바 꾸 기
search(pattern)
문자열 의 pattern 시작 위 치 를 되 돌려 줍 니 다.
split(pattern)
지정 한 pattern 으로 분 리 된 문자열 을 되 돌려 줍 니 다.
정규 표현 식 만 들 기
정규 표현 식 을 만 드 는 방법 은 수학 표현 식 을 만 드 는 방법 과 같다.즉, 여러 개의 메타 문자 와 조작 문자 로 작은 표현 식 을 결합 하여 더 큰 표현 식 을 만 드 는 것 이다.한 쌍 의 구분자 사이 에 표현 식 모드 를 넣 은 여러 구성 요 소 를 통 해 정규 표현 식 을 만 들 수 있 습 니 다.
js
에 있어 서 구분자 가 한 쌍 의 정사 봉 (/)
문자 이다.예 를 들 면:/expression/
VBScript 의 경우 정규 표현 식 의 경 계 를 확인 하기 위해 따옴표 (") 를 사용 합 니 다.예 를 들 면:
"expression"
예 를 들다
// ( , 5-16 ,
var re =new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,19}$");
`if(re.test(aaaa)){
alert(" ");
}else{
alert(" ");
}
정규 표현 식 의 구성 요 소 는 하나의 문자, 문자 집합, 문자 범위, 문자 간 의 선택 또는 모든 구성 요소 의 임 의 조합 일 수 있 습 니 다.
match 방법
/* match */
var pattern = /box/ig;//
var str = 'This is a Box!,That is a Box too';
alert(str.match(pattern)); // Box,Box
console.log(str.match(pattern).length);//
검색 방법
/* search */
var pattern = /box/ig;
var str = 'This is a Box!,That is a Box too';
console.log(str.search(pattern));// , -1
PS: 검색 방법 을 찾 으 면 되 돌아 오기 때 문 입 니 다. 즉, g 전역 이 필요 없습니다.
replace 방법
/* replace */
var pattern = /box/ig;
var str = 'This is a Box!,That is a Box too';
console.log(str.replace(pattern, 'Cat'));// Box Cat
split 방법
/* split */
var pattern = / /ig;
var str = 'This is a Box!,That is a Box too';
console.log(str.split(pattern));//
exec 방법
/* */
function count(str){
var b,r=/def/g;
while(b = r.exec(str)){
console.log(b);
}
}
count('abcdefabcdefabcdefabcdef');
출력:
[ 'def', index: 3, input: 'abcdefabcdefabcdefabcdef' ]
[ 'def', index: 9, input: 'abcdefabcdefabcdefabcdef' ]
[ 'def', index: 15, input: 'abcdefabcdefabcdefabcdef' ]
[ 'def', index: 21, input: 'abcdefabcdefabcdefabcdef' ]
정규 표현 식 선택
정규 표현 식 은 1 개 이상 의 정규 표현 식 서열 을 포함 하 는 것 을 선택 합 니 다.이 시퀀스 들 은 세로 선 (|) 문자 로 구 분 됩 니 다.이 시퀀스 의 모든 항목 이 일치 하 는 조건 에 부합된다 면 이 선택 은 일치 합 니 다.그 는 순서대로 매 칭 할 것 이다.
"into".match(/in | int/);
이상 은
into
에서 일치 합 니 다 in
.그러나 그 는 일치 하지 않 을 것 이다 int
. 왜냐하면 in
는 이미 일치 에 성 공 했 기 때문이다.정규 표현 식 전의
\ / [ ] () { } ? + * | . ^ $
위
와 글자 그대로 일치 하려 면 하나의 \
접두사 로 전 의 를 해 야 합 니 다.\
접 두 사 는 자모 나 숫자 를 면 화 할 수 없다.\f :
:
\r :
\t : (tab)
\^ ^
\$ $
\. (.)
실례
String.prototype.trim = function () {
return this.replace(/(^\s*)|(\s*$)/g,'');
};
^
문자열 은 반드시 뒤의 규칙 으로 시작 해 야 한 다 는 것 을 나타 내 고 (^\s*)
는 0 개의 빈 칸 이나 여러 개의 빈 칸 으로 시작 하 며 뒤의 (\s*$)
은 0 개의 빈 칸 또는 여러 개의 빈 칸 으로 끝 난 다 는 뜻 이다.특정 문자열 일치
^[A-Za-z]+$ // 26
^[A-Z]+$ // 26
^[a-z]+$ // 26
^[A-Za-z0-9]+$ // 26
^\w+$ // 、26
평가: 가장 기본 적 이 고 가장 많이 사용 되 는 표현 식 입 니 다.
사유 지도
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.