티스토리 뷰

728x90
반응형
- 정규 표현식 문자열에서 특정 문자를 찾아내는 도구
- 하나의 언어이다. (다양한 언어에서도 활용함)

- 문자열을 검색하고 대체하는 데 사용하는 형식 언어패턴

 

▶ 정규 표현식 문법

 

1. 그룹과 범위

표현식 설명
|
또는
() 한 그룹
[] 문자셋(숫자, 문자, 기호, 공백 다 가능)
[^] 부정 문자셋(괄호 안의 문자가 아닐 때)

 

2. 빈도수

표현식 설명
? 0 또는 1 (있거나 없거나)
* 0 또는 1이상(있어도 되고 없어도 되고)
+ 1 이상(하나 있거나 그 이상 있거나)
{n} n번 반복
{min, } 최솟값 이상 ex) {2, } => 숫자나 문자 2개 이상
{min,max} 최솟값 이상, 최댓값 이하

 

3. 문자

표현식 설명
. 어떤 글자(줄 바꿈 제외)
\d 숫자
\D 숫자 아님
\w 문자
\W 문자 아님
\s 공백
\S 공백 아님

 

4. 경계 영역

표현식 설명
\b 단어 경계
\B 단어 경계가 아님
^ 문장의 시작
$ 문장의 끝

 

자주 쓰이는 정규 표현식 ⭐

  1. 숫자만 : ^[0-9]$
  2. 영문자만 : ^[a-zA-Z]$
  3. 한글만 : ^[가-힣]$
  4. 영어 & 숫자만 : ^[a-zA-Z0-9]$
  5. E-Mail : ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$
  6. 휴대폰 : ^01(?:0|1|[6-9]) - (?:\d{3}|\d{4}) - \d{4}$
  7. 일반전화 : ^\d{2,3} - \d{3,4} - \d{4}$
  8. 주민등록번호 : \d{6} - [1-4]\d{6}
  9. IP 주소 : ([0-9]{1,3}) . ([0-9]{1,3}) . ([0-9]{1,3}) . ([0-9]{1,3})

↓정규 표현식 학습 및 테스트 하기 위한 사이트 ↓

http://regexr.com/5mhou

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

 


 

▶ 정규 표현식 객체 생성하기 

 

1. 생성자 함수 방식

const pattern = new RegExp("문자열");

 

2. 리터럴 방식

const pattern = /문자열/gm;

 

▶ 정규 표현식 객체나 문자열이 사용하는 메소드

  • 추출 (해당 패턴의 문자열만 추출)
  • 테스트 (해당 패턴이 있는지 확인)
  • 변환 (해당 패턴의 문자열을 다른 문자열로 변환)

 

1) exec() : 패턴에 해당되는 문자열이 있으면 그 값을 배열로 반환

// 구문
정규식.exec("문자열");

// 예제
let pattern = /a/;
pattern.exec("abcdef");

 

2) test() : 패턴에 해당되는 문자열이 있으면 true를, 없으면 false를 반환

// 구문
정규식.test("문자열");

// 예제
let pattern = /a/;
pattern.test("abcdef");

 

3) metch() : exec()와 비슷함, 정규식에 해당하는 문자열을 배열로 반환

// 구문
문자열.metch(정규식);

// 예제
let pattern = /a/;
"abcdef".match(pattern);

 

4) search() : 정규식에 해당하는 문자열이 있으면 index를, 없으면 -1을 반환

// 구문
문자열.search(정규식);;

// 예제 
let pattern = /a/;
"abcdef".search(정규식);

 

5) replace() : 문자열에서 패턴에 해당하는 문자를 대체 문자로 변경해서 반환

// 구문
문자열.replace(정규식, "대체문자");

// 예제
let pattern = /a/;
"abcdef".replace(pattern, "A");

 

6) split() : 여러가지 조건으로 문자열을 구분자 기준으로 쪼개어 배열로 반환

// 구문
문자열.split(정규식);

// 예제
let str = "Hello world,Man";
let pattern = / ,/;
str.split(pattern);

 

 

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
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
글 보관함