스터디/[패스트캠퍼스] 데브캠프: 김민태의 프론트엔드 개발 3기
정규표현식(Regular Expressions) 정리
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