정규표현식(RegExp)

이선호·2021년 10월 17일
0

정규식 생성

//생성자
new RegExp('표현', '옵션')
new RegExp('[a-z]', 'gi)

//리터럴
/표현/옵션
/[a-z]/gi

플래그(옵션)

g : 모든 문자열 일치(global)
i : 영어 대소문자를 구분 않고 일치(ignore case)
m : 각각의 줄을 하나의 시작과 끝으로 보기(multi line)

const str = `
010-1234-5678
thetodayisfighting@coding.com
https://omdbapi.com/?apikey=7035c60c&s=frozen.
THE quick brown fox jumps over the lazy dog.
abbcccdddd.
`
console.log(str.match(/\./gim)) 
// [".", ".", ".", ".", "."] 문장 전체에서 .를 찾는다.
console.log(str.match(/\.$/gim)) 
// [".", ".", "."] 

// '$' 문장의 끝 부분만 확인한다.

// `/` 이스케이프의 활용
// . 이라는 기호가 원래는 어떠한 기능으로 쓰이는데,
// 단순히 기능이 아닌 문자로만 검색하기 위해 이스케이프라는 `\` 를 넣어주어 문자로 인식되게 한다. 

패턴(표현_1)

^ab : 줄(Line) 시작에 있는 ab와 일치
ab$ : 줄(Line) 끝에 있는 ab와 일치
. : 임의의 한 문자와 일치
a|b : a 또는 b와 일치
ab? : b 가 없거나 b 와 일치
{3} : 3개 연속 일치
{3,} : 3개 이상 연속 일치
{3,5}: 3개~5개 연속 일치

패턴(표현_2)

[abc] : a 또는 b 또는 c
[a-z] : a부터 z 사이의 문자 구간에 일치(영어 소문자)
[A-Z] : A부터 Z 사이의 문자 구간에 일치(영어 대문자)
[0-9] : 0부터 9 사이의 문자 구간에 일치(숫자)
[가-힣] : 가 부터 힣 사이의 문자 구간에 일치(한글)

패턴(표현_3)

\w : 63개 문자(word, 대소문자 52개, 숫자 10개 + _)에 일치
\b : 63개 문자에 일치하지 않는 문자 경계(Boundary) <특수문자>
\d : 숫자 (Digit)에 일치
\s : 공백(space, tab 등)에 일치
(?=) : 앞쪽 일치(Lookahead)
(?<=) : 뒤쪽 일치(Lookbehind)

자주 사용하는 메소드

test : 정규식.test(문자열) 일치여부를 Boolean 값으로 반환
match : 문자열.match(정규식) 일치하는 문자열을 Array 값으로 반환
replace : 문자열.replace(정규식, 대체문자) 일치하는 문자열을 대체하고 대체된 문자열을 반환
exec : 정규식.exec(문자열) 일치하는 하나의 정보(Array) 반환
split : 문자열.split(정규식) 일치하는 문자열을 분할하여 Array 값으로 반환
search : 문자열.search(정규식) 일치하는 문자열의 인덱스(Number) 값으로 반환
toString : 생성자_정규식.toString() 생성자 함수 방식의 정규식을 리터럴 방식의 문자열(String)으로 반환

위 3개의 메소드( test, match, replace ) 가 가장 자주 쓰임

const str = `
010-1234-5678
thetodayisfighting@coding.com
https://omdbapi.com/?apikey=7035c60c&s=frozen
THE quick brown fox jumps over the lazy dog.
abbcccdddd
`
// 생성자 방식

const regexp = new RegExp('the', 'g') 
// ["the", "the"] "g는 전역을 의미"
console.log(str.match(regexp))

const regexp = new RegExp('the', 'gi')
//  ["the", "THE", "the"] "i는 대소문자 구별하지 않겠다" 를 의미
console.log(str.match(regexp))

//리터럴 방식

const regexp = /the/gi   
// ["the", "THE", "the"]
console.log(str.match(regexp))

출처
https://github.com/jaeilnet/RegExp-Test

0개의 댓글

관련 채용 정보