반응형
반응형
정규표현식(RegExp)
정규표현식이라 문자열을 검색하고 대체하는 데 사용 가능한 일종의 형식 언어(패턴) 이다 .
간단한 문자 검색부터 이메일 , 패스워드 검사 등의 복잡한 문자 일치 기능 등을 정규식 패턴으로 빠르게 수행할 수 있다 .
역할
- 문자 검색 (search)
- 문자 대체 (replace)
- 문자 추출(extract)
테스트 사이트
정규표현식은 자바스크립트에서만 사용하는 것이 아니기 때문에 특정 언어에서 작동하는 정규표현이 다른언어에서는 안돌아 갈 수도 있다 . 자신이 사용하는 언어 기준으로 테스트가 되고 있는지 확인이 필요하며 위의 사이트에서 테스트 했다 하더라도 본인의 개발 환경에서 한번 더 테스트 해보는 것이 좋다 .
메소드문법설명
test | 정규식.test(문자열) | 일치 여부 boolean 봔환 |
match | 문자열.match(정규식) | 일치하는 문자의 배열(Array)반환 |
replace | 문자열.replace(정규식 , 대체문자) | 일치하는 문자를 대체 |
플래그(옵션)
플래그설명
g | 모든 문자 일치 (global) |
i | 영어 대소문자를 구분 하지 않고 일치(ignore case) |
m | 여러 줄 일치(multi line) |
패턴(표현)
패턴설명
^ab | 줄 시작에 있는 ab와 일치 |
ab$ | 줄 끝에 있는 ab와 일치 |
. | 임의의 한 문자와 일치 |
a | b | a 또는 b와 일치 |
ab? | b가 없거나 b와 일치 |
{3} | 3개 연속 일치 |
{3,} | 3개 이상 연속 일치 |
{3,5} | 3개 이상 5가 이하 (3~5개) 연속 일치 |
[abc] | a 또는 b또는 c를 찾음 |
[a-z] | a-z 까지의 모든 소문자를 찾음 |
[A-Z] | A-Z 까지의 모든 대문자를 찾음 |
[0-9] | 0부터 9까지 |
[가-힣] | 한글 찾음 |
\w | 63개 문자(Word,대소영문52개 ,숫자10개 , _)를 찾음 |
\b | 63개 문자에 일치하지 않는 문자 경계 |
\d | 숫자(Digit)에 일치 |
\s | 공백(space, tab)에 일치 |
(?=) | 앞쪽 일치(Lookahead) |
(?<=) | 뒤쪽 일치(Lookbehind) |
//줄 바꿈을 포함하여 쓰고싶다면 ``백틱으로 감싼다
const str =
`
010-1234-1234
ugo04@gmai.com
https://www.omdbapi.com/?apikey=f1ab98ec&s=parasite
The quick brown fox jumps over the lazy dog.
abbcccdddd
`
//생성자 함수를 통해서 생성
//const regexp = new RegExp('the','g')
//리터럴 방식 정규표현식
// \ 일반문자로 해석시킴(escape)
// . 어떤 문자도 허용
// $ 끝부분을 지칭함
// m 줄마다 검색 (multiline)
// h 로 시작하고 p 로 끝나는 4글자 찾음
const regexp = /h..p/g
//fox 또는 dog를 찾고 둘중에 먼저 찾아지는 것만 반환
const regexp2 = /fox|dog/
//s가 없을 수도 있고 있을 수도 있다.
const regexp3 = /https?/g
//d가 2개 연속 일치하는 것을 반환
const regexp4 = /d{2}/g
//d가 2개 이상 인것을 반환
const regexp5 = /d{2,}/g
//d가 2개 이상 3개 이하인 것을 반환
//\w <- 숫자를 포함한 영어알파벳을 의미
const regexp6 = /\w{2,3}/g
// \b 특수문자를 의미함
// 아래는 특수문자가 앞뒤로 붙기떄문에 결국
// 영어나 숫자로만 3글자인 단어만 반환
const regexp7 = /\b\w{2,3}\b/g
//f또는 o 또는 x를 찾음
const regexp8 = /[fox]/g
//전역에서 숫자가 1개 이상으로 연속되는 것을 찾음
const regexp9 = /[0-9]{1,}/g
//1개이상 연속되는 한글 찾음
const regexp10 = /[가-힣]{1,}/g
//영어 , 숫자 , _
const regexp11 = /\w/g
//소문자 f로 시작하는 모든 문자를 리턴
const regexp12 = /\bf\w{1,}\b/g
//숫자3개연속
const regexp13 = /\d{3,}/g
//공백문자 리턴
const regexp14 = /\s/g
//@앞의 1개이상 모든문자를 출력
const regexp15 = /.{1,}(?=@)/g
const regexp16 = /(?<=@).{1,}/g
const h = ` hi there wow !
`
//정규식 메서드
//정규식에 맞는데이터가 존재하는지 확인(boolean 반환)
//console.log(regexp.test(str));
//데이터 대채 원본 변경 X
//console.log(str.replace(regexp,'AAA'))
console.log(h.replace(regexp14,''))
console.log(str.match(regexp16))
반응형