<-- 네이버 소유권 확인 !--> <-- 구글 애드센스 !-->

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp

1. 정규표현식 이란

  (1) 정규표현식(regular expression) 문자열에서 특정한 문자를 찾아내는 도구다.

  (2) 일종의 언어로써, 자바 다른 언어에서도 사용된다.

  (3) - 컴파일  :  검출하고자 하는 패턴을 만드는 일이다  

      -  실행     :   컴파일해서 객체를 만들었다면 이제 문자열에서 원하는 문자를 찾아내기

 

2. 컴파일 

  ; 검출하고자 하는 패턴을 만드는 일이다  

 

정규표현식 리터럴

var pattern = /a/

 

예시) /ab+c/i;

정규표현식 객체 생성자

var pattern = new RegExp('a')

 

예시)

new RegExp('ab+c', 'i');

new RegExp(/ab+c/, 'i');

 

3. 정규표현식 메소드 실행

  ; 컴파일해서 객체를 만들었다면 이제 문자열에서 원하는 문자를 찾아내기

 

RegExp.exec( )

 특정 정보를 추출할때 사용

(1)

var pattern = /a/ 

console.log(pattern.exec('abcdef')); // ["a"]

 

 

(2) 

var pattern = /a/

console.log(pattern.exec('bcdefg')); // null

 

 

(3) 

var pattern = /a./

-> . 쩜은 a 뒤에 어떤문자가 와도 a 문자 포함

console.log(pattern.exec('abcdef'));

//["ab"] 

 

RegExp.test()

test는 인자 안에 패턴에 해당되는 문자열이 있으면 true, 없으면 false를 리턴한다.

(1)

var pattern = /a/ 

console.log(pattern.test('abcdef')); // 

ture

 

 

(2) 

var pattern = /a/

console.log(pattern.test('bcdefg')); // 

false;

 

4. 문자열에서 정규 표현식 사용

 

 

String.match()

var pattern = /a/

console.log('abcdef'.match(pattern)); // ["a"]

console.log('bcdefg'.match(pattern)); // null

 

string.replace( )

var pattern = /a/

console.log('abcdef'.replace(pattern, 'A'));  // Abcdef

 

 

 

5. 정규표현식 옵션 

 

i

대소문자를 구분하지 않음

(1)

var  xi = /a/

console.log("Abcde".match(xi); // null

 

(2)

var oi = /a/i ;

console.log("Abcde".match(oi); // ["A"]

g

검색된 모든 값을 리턴 

(1)

var xg = /a/;

console.log("abcdea".match(xg));

//["a"]

 

 

(2)

var og = /a/g;

console.log("abcdea".match(og));

//["a","a"]

 

 

 

 

 

 

 

6. 정규표현식 사례(캡쳐)

 

 

(\w+) \s (\w+)

1. \w+   

     -> w : word ( 기호 제외)

     -> + : 1개이상.  

     -> 따라서 문자가 1 이상인 경우

                                             

2. ( ).     ->  하나의 그룹의 의미

 

3. \s      -> 공백을 의미 (space)

 

 위를 충족하는 예시 ) AAAvdf   ASDFddsdf

 

 

참고) https://regexper.com/  정규표현식 시각화 도구

 var pattern = /(\w+)\s(\w+)/;

var str = "coding everybody";

var result = str.replace(pattern, "$2, $1");

console.log(result);

$2 : pattern 2번째 그룹

$1 : pattern 1번째 그룹

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7. 기초 용어

https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/%EC%A0%95%EA%B7%9C%EC%8B%9D

 

i

대소문자를 구분하지 않음

(1)

var  xi = /a/

console.log("Abcde".match(xi); // null

 

(2)

var oi = /a/i ;

console.log("Abcde".match(oi); // ["A"]

g

검색된 모든 값을 리턴 

(1)

var xg = /a/;

console.log("abcdea".match(xg));

//["a"]

 

 

(2)

var og = /a/g;

console.log("abcdea".match(og));

//["a","a"]

+

해당 정규표현식이 1 이상 대응

var reg = /[a]+/

var str = "aaaa bbb. aadd"

var arr = str.split(reg)//[""," bbb","dd"]

^

not 의미

var reg = new RegExp(/[^a-z0-9]/,"gi")

 

var str = "abcAAA123!!!!!!!"

str.match(reg)  // ["!", "!", "!", "!", "!", "!", "!"]

|

또는 의미

var reg = /[-]+|[#]+/

 

var str = "aaa##bbb--ccc"

 

var arr = str.split(reg) // ["aaa","bbb","ccc"]

\w

(소문자 w)

밑줄을 포함한 모든 영문,숫자에 대응

(1)다음과 같음.  : [A-Za-z0-9_]

(2) 예시

var reg = /\w/g

var str = "aaaa++bbbb__ccc&&&ddd"

 

var arr = str.match(reg) // ["a", "a", "a", "a", "b", "b", "b", "b", "_", "_", "c", "c", "c", "d", "d", "d"]

\W

(대문자 W)

\w 반대

(1)다음과 같음 :  [^A-Za-z0-9_]

(2) 예시

var reg = /\W/g

var str = "aaaa++bbbb__ccc&&&ddd"

 

var arr = str.match(reg) //["+", "+", "&", "&", "&"]

 

 

 

 

8.  사용 예시

 

 정규표현식 내에 변수 쓰기

let reg = new RegExp(char,'g')// 정답

let reg = new RegExp("char",'g') // 오답

문자열 내에서  알파벳만  찾기

var reg = var reg = new RegExp(/[a-z]/,"gi")

 

var str = "abcAAA!!!!!!!"

str.match(reg) // ["a", "b", "c", "A", "A", "A"]

문자열 내에서 알파벳 제외 하고 찾기

var reg = new RegExp(/[^a-z]/,"gi")

 

var str = "abcAAA123!!!!!!!"

str.match(reg)  // ["1", "2", "3", "!", "!", "!", "!", "!", "!", "!"]

문자열 내에서 숫자만 찾기

var reg = /[0-9]/g

 

var str = "abc...!!123"

str.match(reg) // ["1", "2", "3"]

문자열내에서 (알파벳, 숫자) 아닌 경우 찾기

var reg = new RegExp(/[^a-z0-9]/,"gi")

 

var str = "abcAAA123!!!!!!!"

str.match(reg)  // ["!", "!", "!", "!", "!", "!", "!"]

split 사용시 구분자 여러개 넣기

var reg = /[-+]/

 

var str ="30-10-50+30-3122+325"

str.split(reg)  // ["30", "10", "50", "30", "3122", "325"]

 정규표현식에서  "또는" 구현

( | 사용)

var reg = /[-]+|[+]+/

var str = "aaa++bbb--ccc"

 

var arr = str.split(reg) // ["aaa","bbb","ccc"]

 

 

 

 

 

 

 

 

<생활코딩 정규표현식 강의 >

https://opentutorials.org/course/743/6580

'프로그래밍공부 > 자바스크립트' 카테고리의 다른 글

클래스  (0) 2019.06.20
arguments 와 전개연산자(...xxx)  (0) 2019.06.20
scope & closure  (0) 2019.06.20

+ Recent posts