본문으로 건너뛰기

정규식 (Regular Expression)

정규식(Regular Expression)의 개념과 사용 방법 관련 내용을 설명합니다.

  • 정규식은 복잡한 텍스트 속에서 특정한 규칙(패턴)을 가진 문자열을 찾아내는 강력한 도구입니다.

  • 단순한 단어 찾기를 넘어, "숫자로만 된 단어", "이메일 형식" 등을 한 번에 찾아낼 수 있습니다.

  • System.Text.RegularExpressions 네임스페이스를 기반으로 동작합니다.

  • 단순 문자열 검색부터 복잡한 패턴 매칭(이메일, 전화번호 등)까지 지원합니다.

  • .NET Framework 4.8 환경의 표준 정규식 문법을 따릅니다.


기본 개념

정규식은 문자열 속에서 특정 패턴을 기술하기 위한 일종의 '언어'입니다.
텍스트 내에서 단순히 "ABC"를 찾는 것을 넘어, "숫자로 시작하는 세 글자 단어"와 같은 추상적인 조건을 지정할 수 있습니다.


기본 문법 요약

가장 자주 사용되는 핵심 기호 모음입니다.

기호설명예시
.임의의 한 문자와 일치 (공백 포함)a.b → aab, a1b, a b
^문장의 시작 위치를 의미^Hello → "Hello world" (매칭)
$문장의 끝 위치를 의미End$ → "The End" (매칭)
\d모든 숫자와 일치 (0-9)\d\d → 12, 88
\w알파벳, 숫자, 언더바(_)와 일치\w+ → Word_123
\s공백 문자 (스페이스, 탭 등)와 일치\s

수량자 (반복 횟수 지정)

해당 패턴이 몇 번이나 나타나는지 지정할 수 있습니다.

기호설명예시
*0번 이상 반복ab* → a, ab, abb, abbb...
+1번 이상 반복 (최소 하나 필요)ab+ → ab, abb, abbb... (a 미포함)
?0번 또는 1번 존재colou?r → color, colour
{n}정확히 n번 반복\d{3} → 123, 456 (숫자 3자리)
{n,m}최소 n번 이상, 최대 m번 이하 반복\d{2,4} → 12, 123, 1234

실전 예시 (Cheat Sheet)

검색창에 바로 복사해서 활용할 수 있는 주요 패턴입니다.

검색 목적정규식 패턴설명
숫자만 검색^[0-9]+$처음부터 끝까지 숫자로만 된 행
전화번호\d{2,3}-\d{3,4}-\d{4}010-1234-5678 형식
이메일[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}일반적인 이메일 주소 형식
특정 단어 제외^(?!.*제외단어).*$'제외단어'가 포함되지 않은 행 검색
날짜 (YYYY-MM-DD)\d{4}-\d{2}-\d{2}2024-05-20 형식

정보

메타 문자 검색 시 주의사항 *, +, ?, (, ), [ 와 같은 기호 자체를 검색하고 싶을 때는
기호 앞에 백슬래시(\)를 붙여야 합니다.
[ 예: 마침표(.)를 검색하고 싶다면 \. 로 입력하세요. ]

대소문자 구분 여부 본 시스템의 정규식 검색은 기본적으로 대소문자를 구분합니다. 만약 대소문자 구분 없이 검색하고 싶다면 정규식 앞에 (?i)를 붙여보세요. (예: (?i)apple)


C# 코드 적용 가이드 (.NET 4.8)

개발 시 유효성 검사를 수행하거나 특정 패턴을 추출할 때 아래와 같이 사용합니다.

using System.Text.RegularExpressions;

// 1. 단순 일치 여부 확인
bool isMatch = Regex.IsMatch("입력문자열", @"^\d+$");

// 2. 검색 결과 추출
Match match = Regex.Match("전화번호: 010-1234-5678", @"\d{3}-\d{4}-\d{4}");
if (match.Success)
{
string phone = match.Value; // 010-1234-5678
}

상세 안내 및 참고 문서

정규식에 대해 더욱 깊이 있는 학습이나 복잡한 문법 확인이 필요하시다면 Microsoft 공식 기술 문서를 참고하시기 바랍니다.