minsung521 2025. 3. 7. 12:20

정규표현식(Regex)은 특정한 패턴을 찾아내고 처리하는 데 사용되는 문자열 매칭 기술이다. 주로 프로그래밍에서 텍스트 데이터에서 특정 규칙을 만족하는 문자열을 검색, 변환, 검증하는 데 활용된다.


정규표현식의 주요 개념

개념 설명
패턴 특정한 규칙을 표현하는 문자열
메타문자(Metacharacters) 특별한 의미를 가지는 기호들
옵션(Flags) 정규표현식의 동작 방식을 조절하는 옵션

1. 정규표현식 연습 사이트

  • Regexr : 정규표현식을 직접 실습할 수 있는 사이트

2. 기본 문법

(1) 구분자

정규표현식은 /로 감싸서 작성한다.
예시:

/패턴/

(2) 옵션 (Flags)

옵션을 사용하면 정규표현식의 동작 방식을 변경할 수 있다.
| 옵션 | 설명 |
| --- | --- |
| g | 패턴을 모두 찾기 |
| i | 대소문자 구분 없이 검색 |

예제:

/abc/g  → 문자열에서 "abc"를 모두 찾음  
/abc/i  → "abc", "ABC" 등 대소문자 무관하게 찾음  

3. 메타문자 (Metacharacters)

메타문자는 특정한 의미를 가지는 기호들이다.

메타문자 설명 예제
. 어떤 문자 하나 a.b → "acb", "a1b" 등
+ 바로 앞 패턴이 반복됨 a+b → "ab", "aab", "aaab" 등
A|B A 또는 B apple|banana → "apple" 또는 "banana"
[] 대괄호 안의 문자 중 하나와 매칭 [AB]+ → "A", "B", "AA", "AB" 등
A-Z 특정 범위를 의미 [A-Z] → "A"부터 "Z"까지의 알파벳
\ 메타문자를 일반 문자로 사용 \. → "." 문자 자체

4. 특수 문자

기호 설명 예제
\d 숫자 (0-9) \d+ → "123", "4567" 등
\D 숫자가 아닌 것 \D+ → "abc", "#$%" 등
\w 알파벳, 숫자, 밑줄(_) \w+ → "hello", "world_123" 등
\W \w가 아닌 것 \W+ → "!@#", " " (공백) 등

정규표현식은 논리적으로 반대 개념을 가지는 연산자가 존재한다.
예를 들어, \d는 숫자를 찾고, \D는 숫자가 아닌 것을 찾는 거울 논리를 갖는다.


5. 정규표현식 활용 예제

const text = "Hello, my number is 123-456-7890.";

// 숫자만 찾기
const numbers = text.match(/\d+/g);
console.log(numbers); // ["123", "456", "7890"]

// 대소문자 구분 없이 특정 단어 찾기
const hasHello = /hello/i.test(text);
console.log(hasHello); // true