일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Intent
- 웹개발
- 게시판
- Resources
- jQuery
- JavaScript
- Spring
- CSS
- 제이쿼리
- 생명주기
- 프로그래밍
- 자바
- 영성
- 글쓰기
- Selector
- 회원가입
- 인텐트
- 안드로이드
- 에디터
- 청주
- Android
- 주님의교회
- 안드로이드 AVD
- java 8
- TinyMCE
- androidstudio
- Java
- Activity
- #청주주님의교회
- 아이콘
- Today
- Total
공부하는 블로그
JavaScript 정규표현식 본문
1 정규표현식
정규표현식은 문자열의 치환 및 색인을 위한 패턴화된 표현식을 말한다.
1.1 생성
1) var re = /정규식/;
2) var re = new RegExp(“정규식”);
1.2 옵션
1) g : 전체 색인
2) i : 대소문자 구분 안함
3) s : .의 의미를 확장하여, 공백, 엔터도 하나의 문자로 취급함
4) m : 멀티라인 옵션으로 ^, $를 확장
5) x : 정규식 패턴에 공백을 무시함
1.3 패턴
1) 정규식은 대소문자를 구분한다.
문자열 |
Hello World |
정규식 |
Hello |
결과 |
Hello World |
2) 문자열에는 공백문자(스페이스, 엔터, 탭)도 포함한다
문자열 |
Hello World |
정규식 |
Hello World |
결과 |
Hello World |
3) ^ 는 문자열의 시작, $는 한 줄의 끝을 의미한다
문자열 |
who i am |
정규식 |
^who |
결과 |
who i am |
정규식 |
am$ |
결과 |
who i am |
4) 정규식에 사용되는 특수문자는 \(역슬레시)를 붙혀서 사용한다
문자열 |
12, 000$ |
정규식 |
\$ |
결과 |
12, 000$ |
5) .은 공백 및 한자리 문자를 의미한다 (탭, 엔터는 제외)
문자열 |
Hello World |
정규식 |
. |
결과 |
Hello World |
6) [] 는 찾을 문자들의 리스트를 나타낸다
문자열 |
Hello World |
정규식 |
[eWr] |
결과 |
Hello World |
7) [ - ] 문자의 범위를 지정 때 사용한다
문자열 |
hello world |
정규식 |
[d-h] (다음과 동일 [defgh] ) |
결과 |
hello World |
8) 문자범위 앞에 ^기호는 해당 범위의 문자를 제외한 나머지를 의미한다
문자열 |
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 |
정규식 |
[^CDghi45] |
결과 |
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 |
9) 여러 문자열 중 하나와 일치하는 것을 찾으려면 ()를 사용하고 문자열 사이에 | 기호를 사용하여 구분한다
문자열 |
Monday Tuesday Friday |
정규식 |
(on|ues|rida) |
결과 |
Monday Tuesday Friday |
10) 문자가 몇 번 반복되는지 나타낼 때는 * (0번이상), + (1번이상), ? (0번 or 1번)을 사용한다
문자열 |
aabb abc bc |
정규식 |
a*b |
결과 |
aabb abc bc |
정규식 |
a+b |
결과 |
aabb abc bc |
정규식 |
a?b |
결과 |
aabb abc bc |
11) {N} 은 N번 반복, {N, M}은 N~M 반복, {N, }은 N번 이상의 반복을 의미한다
문자열 |
One ring to bring them all and in the darkness bind them |
정규식 |
.[s]{2} |
결과 |
One ring to bring them all and in the darkness bind them |
정규식 |
[a-z]{3, } |
결과 |
One ring to bring them all and in the darkness bind them |
(즉, * 는 {0, } , +는 {1, } , ?는 {0, 1} 표현과 동일하다)
12) *, +, ? 뒤에 ?가 붙으면, 각 기호에 해당되는 최소의 수만을 의미한다
즉 *?는 0번, +?는 1번, ??는 0번 반복을 의미한다
13) \w는 임의의 알파벳, 숫자, _(언더바)를 의미한다. 다르게 표현하면 [A-z0-9_] 이다
문자열 |
A1 B2 c3 d_4 e:5 ffGG77--__-- |
정규식 |
\w |
결과 |
A1 B2 c3 d_4 e:5 ffGG77--__-- |
정규식 |
[a-z]\w+ |
결과 |
A1 B2 c3 d_4 e:5 ffGG77--__-- |
14) \W는 임의의 알파벳, 숫자, _(언더바)를 제외한 문자를 의미한다. 다르게 표현하면 [^A-z0-9_] 이다
15) \s는 공백문자(스페이스, 엔터, 탭)을 \S는 공백문자를 제외한 문자를 의미한다
16) \d는 숫자를, \D는 숫자를 제외한 문자를 의미한다
17) \b는 단어의 경계를 \B는 단어의 경계를 제외한 부분을 의미한다. 단어의 경계란 한 쪽이 \w에 속하는 문자, 다른 한쪽이 \W에 속하는 문자일 때 그 사이 지점으로 정의한다
18) \A는 문자열의 시작을, \Z는 문자열의 끝을 의미한다. 멀티라인 문자에서 ^는 새로운 줄이 시작될 때 마다 찾지만, \A는 전체 문자열에서 한번만 찾고, $는 한 줄이 끝날 때마다 찾지만, \Z는 전체 문자열에서 한번만 찾는다는 차이점이 있다
19) (?=<패턴>)은 특정 패턴이 다음에 이어지는지 검사하지만, 검색 결과에는 포함되지 않는다. 이와 반대로는 (?!<패턴>)이 있다
20) 패턴을 찾아서 찾은 패턴을 다른 것으로 변경할 때는 \1, \2 … 을 대입 변수로 사용한다
21) \t (tab), \n (Line feed), \f (Form feed), \r (Carriage return), \v (vertical tab), \0 (null)
22) \uhhhh 유니코드를 찾는 경우 사용
'Develop > JavaScript' 카테고리의 다른 글
atom 에디터 단축키 모음 (0) | 2018.02.20 |
---|---|
JavaScript 객체 (0) | 2018.02.20 |
클로저 (Closure) (0) | 2018.02.20 |
arguments 객체 (0) | 2018.02.20 |
(JavaScript)현재 시간을 구하는 방법 (0) | 2018.02.20 |