본문 바로가기

컴퓨터 IT

C# 텍스트 입력에서 전화번호 추출하기

전화번호를 자동으로 추출하는 기능은 다양한 애플리케이션에서 활용됩니다.

 

예를 들어, 사용자가 입력한 텍스트에서 전화번호를 자동으로 찾아내어
처리하는 기능은 사용자 편의성을 크게 향상시킬 수 있습니다.

 

이번 글에서는 C#으로 작성된 간단한 전화번호 추출 코드와
그 작동 원리를 살펴보도록 하겠습니다

 

아래는 버튼클릭으로 텍스트박스(tbInput)에 입력받은 내용중 전화번호를 추출해 
텍스트박스(tbOutput)에 보여주는 코드입니다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void btPhone_Click(object sender, EventArgs e)
{
    tbOutput.Text = "";
    string sInput = tbInput.Text;
    
    string sPhonePattern = @"\b\d{2,3}[-.]\d{3,4}[-.]\d{4}\b";
    
    MatchCollection phonematches = Regex.Matches(sInput, sPhonePattern);
 
    foreach (Match match in phonematches)
    {
        //Console.WriteLine(match.Value);
        tbOutput.Text = match.Value;
    }
}
cs

 

주요 코드 동작 분석

1. 입력 텍스트 준비:
   - `tbInput.Text`에서 사용자가 입력한 내용을 가져옵니다.

2. 정규식 패턴 작성:
   - `sPhonePattern` 변수에 전화번호를 찾기 위한 정규식을 작성했습니다.
   - 정규식: `\b\d{2,3}[-.]\d{3,4}[-.]\d{4}\b`
     - `\b`는 단어 경계를 의미하며, 전화번호 앞뒤에 공백이나 특수문자가 있음을 확인합니다.
     - `\d{2,3}`: 2~3자리 숫자.
     - `[-.]`: 하이픈(`-`) 또는 점(`.`).
     - `\d{3,4}`: 3~4자리 숫자.
     - `\d{4}`: 4자리 숫자.

3. 정규식 매칭:
   - `Regex.Matches`를 통해 입력 문자열에서 모든 전화번호 패턴을 찾습니다.
   - 결과는 `MatchCollection` 객체로 저장됩니다.

4. 출력:
   - 찾은 전화번호를 `tbOutput.Text`에 표시합니다.