정규 표현식(Regular Expression)은 문자열에서 특정 패턴을 만족하는 부분을 찾아낼 때 사용한다. 정규 표현식(이하 정규식)은 문자열의 검색, 대체, 추출 등 다양한 용도로 사용된다. 예를 들어, 전자우편 주소나 URL, 전화번호 등과 같은 패턴을 찾거나 데이터를 추출할 때 많이 사용된다.
정규식은 문자열의 패턴을 나타내기 위해 일정한 문법을 사용한다. 이 문법은 다양한 문자, 기호, 메타문자 등을 사용하여 표현된다. 일반적으로 정규식 문법에서 사용되는 표현들을 살펴보자.

정규식은 위와 같은 여러 기호들의 조합으로 표현한다. 이러한 기호들을 메타 문자라고 한다. 다양한 메타 문자들로 정규식 표현이 가능하다. 가장 일반적으로 사용되는 메타 문자들을 살펴보자.
| 메타 문자 | 의미 |
|---|---|
| . | 모든 문자와 일치합니다. |
| * | 앞에 오는 문자가 0회 이상 반복됩니다. |
| + | 앞에 오는 문자가 1회 이상 반복됩니다. |
| ? | 앞에 오는 문자가 0회 또는 1회 나타납니다. |
| | | 둘 중 하나의 문자열과 일치합니다. |
| [ ] | 대괄호 안의 어떤 문자도 일치합니다. |
| [^ ] | 대괄호 안의 어떤 문자도 일치하지 않습니다. |
| ^ | 문자열의 시작과 일치합니다. |
| $ | 문자열의 끝과 일치합니다. |
| ( ) | 괄호 안에 있는 패턴을 하나의 그룹으로 묶습니다. |
\ | 이스케이프 문자로 사용되어 일반 문자를 메타 문자로 취급하지 않도록 합니다. |
| {m} | 앞에 오는 문자가 정확히 m회 나타납니다. |
| {m,} | 앞에 오는 문자가 m회 이상 나타납니다. |
| {m,n} | 앞에 오는 문자가 m회 이상, n회 이하 나타납니다. |
\b | 단어 경계를 나타냅니다. |
\B | 단어 경계가 아님을 나타냅니다. |
\d | 숫자를 나타냅니다. [0-9]와 동일합니다. |
\D | 숫자가 아닌 문자를 나타냅니다. [^0-9]와 동일합니다. |
\s | 공백 문자(스페이스, 탭, 뉴라인)를 나타냅니다. |
\S | 공백이 아닌 문자를 나타냅니다. |
\w | 단어 문자(알파벳 대소문자, 숫자, 언더스코어)를 나타냅니다. |
\W | 글자 대표 문자를 제외한 글자들(특수문자, 공백 등)을 나타냅니다. |
정규표현식으로 010, 123, 456 중 자연수를 찾기
정규식 : [1-9]\d*
021234567, 02-123-4567, 010 2454 3457 처럼 공백이나 '-'로 구분되는 전화번호 찾기
정규식 : \d+-?\d+-?\d+
0030589-5-95826 형식의 번호는 거르고 02-123-4567 형식의 번호 찾기
정규식 : \d{2}[ -]?\d{3}[- ]?\d{4}
연속된 영어 소문자 찾기
정규식 : [a-z]+
한글 단어를 찾기
정규식 : [가-힣]+