javascript 정규 표현 식 입문 노트 (전체 버 전)
정규 표현 식 을 체계적으로 학습 하 는 두 가지 참고: 1) Programming Perl by Larry Wall et al. (O 'Reilly). 2) Mastering Regular Expressions by Jeffrey E. F. Friedl (O' Reilly)
전의 문자 (backslash): \ 자모 와 숫자 는 전의 가 필요 없습니다.다른 문 자 는 기억 이 안 나 면 쓰 세 요.이 문자 들 은 특별한 의미 가 있 습 니 다. 전의 가 필요 합 니 다. ^ $. * +? =! | \ /() [] {} 기타 특수 문자 표시 방법: \ 0 NULL (유 니 코드 16 진수 표현법 은 \ \ u0000, 이하 동일) \ t Tab (\u0009) NewLine (\u000A) \v Vertical tab (\u000B) \f Form feed (\u000C) \r Carriage return (\u000D) \xnn The Latin character specified by the hexadecimal number nn; for example, \x0A is the same as \uxxxx The Unicode character specified by the hexadecimal number xxxx; for example, \u0009 is the same as \t \cX The control character ^X; for example, \cJ is equivalent to the newline character
문자 표시 방법: [...] 괄호 안의 임의의 문자 [^...] 괄호 안의 문 자 를 제외 한 임의의 문자. 줄 바 꿈 문자 (or another Unicode line terminator) 를 제외 한 임의의 문자 \ w 알파벳, 숫자 또는 밑줄, 등가 [a - zA - Z0 - 9] \ W 알파벳, 숫자 또는 밑줄 을 제외 한 임의의 문 자 는 [^ a - zA - Z0 - 9] 와 같 습 니 다. \ s Unicode whitespace \S 유 니 코드 화이트 스페이스 를 제외 한 다른 문자 입 니 다. \ w 와 \ S 는 다 릅 니 다. \ d 숫자, 등가 비 숫자, 등가 [^ 0 - 9]. [\ b] backspace (괄호 사이 의 \ b 는 키보드 의 Backspace 키 에 대응 하 는 문 자 를 말 합 니 다). \ b \w 와 \ W 사이 의 위치 (닻 점), 두 번 째 W 는 대문자 임 을 주의 하 세 요.
반복 일치 모드: {n, m} 최소 n 회 일치 하지만 m 회 {n,} 을 초과 하지 않 습 니 다. n 회 또는 n 회 이상 일치 {n} 일치 n 회? 0 회 또는 1 회 일치, {0, 1} + 1 회 또는 1 회 이상 일치, {1,} * 0 회 또는 0 회 이상 일치, {0,} 예: / \ d {2, 4} / 2 - 4 개의 숫자 / \ w {3} \ d? / 1 - 3 위 는 알파벳, 숫자 또는 밑줄 이 고, 4 위 는 선택 할 수 있 는 숫자 / \ s + java \ s + / "자바" 단어 와 일치 합 니 다. 앞 뒤 에 빈 칸 이 있어 야 합 니 다. 1 개 이상 의 빈 칸 이 있어 도 됩 니 다. / [^ "] * / 따옴표 가 없 는 문자열
알림: * 와? 를 사용 할 때 조심해 야 합 니 다. 예 를 들 어 / a * / a 가 나타 나 도록 요구 하지 않 기 때문에 "bb" 도 일치 합 니 다.
욕심 일치 와 욕심 일치: 앞서 언급 한 중복 일치 모드 는 가능 한 한 많은 문자 와 일치 합 니 다. 욕심 이라는 단어 로 적절 합 니 다. 중복 모드 뒤에 물음표 가 있 으 면 가능 한 한 적은 문자 와 일치 합 니 다. 예 를 들 어 "aaabbbb""매 칭 / a * b * / 의 결 과 는 aaabbbb 입 니 다. 매 칭 / a * b *? / 의 결 과 는 aaa 입 니 다. 매 칭 / a *? b * / 의 결 과 는 아무것도 없습니다. 당신 이 생각 하 는 것 과 같 습 니까?"
선택 (alternation), 그룹 (grouping), 참조 (references) | 이 기 호 는 왼쪽 에서 오른쪽으로 첫 번 째 일치 하 는 모드 를 선택 하 십시오. 예 를 들 어 "aaabbb" 가 / a * a * b * | b * * / 와 일치 하 는 결 과 는 aaa 입 니 다. () 표현 식 과 |, *, +,? 등 조합 하여 사용 할 수 있 습 니 다. 예 를 들 어 / 자바 (script)? / "자바" 또는 "자바 script" (우선) 과 일치 할 수 있 습 니 다. () 하위 모드 를 추출 하 는 데 도 도움 이 됩 니 다. 예 를 들 어 / [a - z]+ \ d + / 알파벳 과 숫자 를 일치 시 킬 수 있 습 니 다. 하지만 성공 한 숫자 와 일치 하 는 부분 에 관심 이 있다 면 / [a - z] + (\ d +) / 도움 이 될 수 있 습 니 다. \ 숫자 를 추가 하면 앞의 표현 식 을 참조 할 수 있 습 니 다. 끼 워 넣 었 든 안 끼 워 넣 었 든 항상 왼쪽 괄호 의 위 치 를 셀 수 있 습 니 다. 예 를 들 어 / [] [^]] * []/ 의 본 뜻 은 한 쌍 의 따옴표 나 한 쌍 의 따옴표 에 정 의 된 문자열 과 일치 하 는 것 입 니 다. 이 공식 은 아직 엄밀 하지 않 습 니 다. 정확 한 표기 법 은 / [] [^]] * \ 1 / (?: 처음에 인용 하지 말 라 는 뜻 입 니 다. 예 를 들 어 / (Jj] ava (?: [Ss] cript)?) \ sis \ s (fun \ w *) / 이 모드 에 \ 2 가 있다 면 인용 한 것 은 (fun \ w *) 입 니 다.
알림: 공식 이 아 닌 일치 하 는 결과 (문자열) 를 참조 합 니 다.
앵 커 포인트 (위치 일치): 앵 커 포 인 트 는 본질 적 으로 일치 조건 에 대한 강화 입 니 다. 가장 기본 적 인 앵 커 포 인 트 는 ^ 와 $입 니 다. 문자열 의 시작 위치 와 끝 위 치 를 표시 합 니 다. 예 를 들 어 \ s 는 빈 칸 을 표시 할 수 있 습 니 다. 단어 / \ sJava \ s / 를 추출 하면 빈 칸 과 함께 '자바' 를 추출 합 니 다. 빈 칸 이 필요 하지 않 으 면 / \ bJava \ b / 를 사용 하여 추출 할 수 있 습 니 다.". \ b 는 경계 가 없다 는 뜻 입 니 다. \ B 는 경계 가 없다 는 뜻 입 니 다. 예 를 들 어 / \ Bscript \ \ b 는" javascript "추출" script ", / \ bscript \ b / 와 일치 할 수 있 습 니 다. null 로 돌아 갑 니 다. (? = 과 (?! 각각 문자열 을 경계 로 규정 합 니 다. 예 를 들 어 / Java (?! Script) /" Java is powerful "과 일치 할 수 있 습 니 다." JavaScript is powerful "과 일치 할 수 없습니다.
태그 (Flags): 정규 표현 식 끝 에 있 습 니 다. i 는 대소 문 자 를 구분 하지 않 음 을 표시 합 니 다. (검 증 된) g 는 모든 일치 하 는 결 과 를 찾 았 음 을 표시 합 니 다. (검증 할 필요 가 있 음) m 는 여러 줄 이 일치 함 을 표시 합 니 다. (검증 할 필요 가 있 음)
var mystr = "aaAabbbbbabb";
iJs.pt("mystr");
iJs.pt("ptn.exec(mystr)");
iJs. pt ("ptn. global"); / g 플래그 true or false
iJs. pt ("ptn. multiline"); / m 플래그 true or false
iJs. pt ("ptn. source"); / 정규 표현 식 공식
디버그 정보:
mystr
aaAabbbbbabb
ptn
/a+/ig
ptn.exec(mystr)
aaAa
ptn.test(mystr)
true
ptn.global
true
ptn.ignoreCase
true
ptn.multiline
false
ptn.lastIndex
10
ptn.source
a+
mystr.match(ptn)
aaAa,a
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.