Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 문자열에서 숫자를 찾는 방법 – 정규식(Regex) 활용 가이드

C#에서 문자열 안에 포함된 숫자를 추출하려면 정규식(Regular Expression)을 활용하는 것이 가장 효과적입니다. 복잡한 반복문 없이도 간단한 패턴 하나로 원하는 숫자를 손쉽게 찾아낼 수 있습니다.

1. 정규식 패턴 설정하기

먼저 Regex 클래스를 사용하여 숫자를 찾기 위한 패턴을 지정합니다. 아래 패턴에서 \d+는 '하나 이상의 연속된 숫자'를 의미합니다.

Regex r = new Regex(@"\d+");

문자열 앞에 붙은 @ 기호는 축자적 문자열 리터럴을 나타내며, 역슬래시(\)를 이스케이프 처리하지 않고 그대로 사용할 수 있게 해줍니다.

2. Match 클래스로 문자열 검색하기

다음으로 Match 클래스를 사용해 대상 문자열에서 패턴과 일치하는 첫 번째 부분을 찾습니다.

Match m = r.Match("Welcome! We are open 365 days in a year!");

검색이 성공했는지 여부는 Match 객체의 Success 속성으로 확인할 수 있습니다. 매칭에 성공했다면 Value 속성을 통해 찾아낸 숫자를 가져올 수 있습니다.

전체 예제 코드

아래는 문자열에서 숫자를 찾아 출력하는 완전한 C# 프로그램입니다.

using System;
using System.Text.RegularExpressions;

class Demo {
   static void Main() {

      Regex r = new Regex(@"\d+");
      Match m = r.Match("Welcome! We are open 365 days in a year!");

      if (m.Success) {
         Console.Write("Number: ");
         Console.WriteLine(m.Value);
      }
  }
}

실행 결과

Number: 365

참고: 여러 개의 숫자를 모두 추출하려면?

문자열에 숫자가 여러 개 있고 이를 전부 찾고 싶다면 Matches 메서드를 사용하면 됩니다. 일치하는 모든 결과를 컬렉션 형태로 반환하므로 foreach 문으로 순회하며 출력할 수 있습니다.

foreach (Match num in r.Matches("2024년 12월 25일")) {
   Console.WriteLine(num.Value); // 2024, 12, 25 순서로 출력
}

이처럼 정규식을 활용하면 문자열 파싱 작업을 훨씬 간결하고 안정적으로 처리할 수 있습니다.