본문 바로가기

JavaScript

[JavaScript] 정규표현식

# 정규표현식(regular expression) : 문자열에서 특정한 문자를 찾아내는 도구, 일종의 언어.

# 컴파일 : 패턴을 찾는 것

# 실행 : 대상(패턴)에 대해 어떠한 작업을 구체적으로 하는 것


# 정규표현식 리터럴

1
2
3
var str = "a";
var pattern = /a///찾고자 하는 것(대상)을 /~/에 넣어준다.
var pattern - new RegExp('a'); //Regular Expression의 약자, 찾고자 하는 것 a.




정규표현식을 통해 하는 중요한 작업 : (필요한 정보를)추출, test, (찾아낸 정보를



1
2
3
var pattern = /a/;    //문자열 a를 찾고 싶다.
pattern.exec('abcde');    //실행의 대상 : 'abcde'
["a"]
cs


1
2
var pattern = /a./;    //. : 1문자
pattern.exec('abcde');["ab"]
cs


1
2
3
4
5
6
7
8
9
10
11
//exec : 필요한 정보 추출
var pattern = /a/;
pattern.exec('bcdef');    
// exec라는 명령어는 정규표현식이 찾고자하는 그 대상을 
//첫번째 인자로 전달하여 패턴이 찾는 정보를 배열로 리턴
null
 
//test : 존재 유무 테스트
pattern.test('abcde');
turepattern.test('bcde');
false
cs


1
2
3
4
5
6
7
8
9
//문자열 메소드 실행
var pattern = /a/;
var str = 'abcde';
str.match(pattern);
["a"]    // 배열리턴, 찾고자하는 a가 들어가있다.
 
var str = 'bcdef';
str match(pattern);
null    //없으므로 null값 리턴
cs

1
2
3
var str = 'abcdef';
str.replace(pattern, 'A');
"abcdef"
cs



# 옵션

i
1
2
3
4
5
6
7
var xi = /a/;    //  i옵션을 사용하지 않는다.
"Abcde".match(xi);
null
 
var oi = /a/i;    // i옵션 사용. 패턴에서 검출되는 대,소문자를 구분하지 않는다.
"Abcde".match(oi);
["A"]
cs


g : Global의 약자

1
2
3
4
5
6
7
var xg = /a/;
"abcdea".match(xg);
["a"]    // a 한번만 검출
 
var og = /a/g;
"abcdea".match(og);
["a""a"]
cs


i+g
1
2
3
var ig = /a/ig;    // 같이 사용가능
"AabcdAa".match(ig);
["A""a""A""a"]
cs




# 캡쳐 : 그룹을 지정하고 지정한 그 그룹을 가져와서 기능을 사용하는것)
치환 : 그룹의 값을 이용해 위치를 바꾸는것

1
2
3
4
5
var pattern = /(\w+)\s(\w+)/;
var str = "coding everybody";
var result = str.replace(pattern, "$2, $1"); // 패턴에 있는 문자를 $2, $1로 치환($2:두번째 그룹)
console.log(result);
everybody, coding
cs


# 치환
생활코딩 : <a href="http://opentutorials.org/course/1">
네이버 : <a href="http://naver.com">http://naver.com</a> 입니다.



'JavaScript' 카테고리의 다른 글

[JavaScrirpt] 유효범위  (0) 2015.11.20