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

C# 정규식으로 문자열에서 각 단어의 첫 글자 출력하기

문자열에서 각 단어의 첫 글자만 추출해야 하는 경우가 종종 있습니다. C#에서는 정규식(Regular Expression)을 활용하면 이 작업을 아주 간단하게 처리할 수 있습니다. 이번 글에서는 정규식을 이용해 문장 내 모든 단어의 첫 글자를 추출하는 방법을 예제 코드와 함께 살펴보겠습니다.

문자열 준비

먼저 다음과 같은 문자열이 있다고 가정해 보겠습니다.

string str = "The Shape of Water got an Oscar Award!";

사용할 정규식

각 단어의 첫 글자를 출력하려면 아래 정규식을 사용합니다.

@"\b[a-zA-Z]"

여기서 \b는 단어 경계(word boundary)를 의미하며, [a-zA-Z]는 알파벳 한 글자를 나타냅니다. 즉, 이 패턴은 각 단어의 시작 위치에 있는 알파벳 한 글자와 일치하므로, 문장 전체에서 단어별 첫 글자만 골라낼 수 있습니다.

전체 코드

using System;
using System.Text.RegularExpressions;
namespace RegExApplication {
   public class Program {
      private static void showMatch(string text, string expr) {
         Console.WriteLine("The Expression: " + expr);
         MatchCollection mc = Regex.Matches(text, expr);
         foreach (Match m in mc) {
            Console.WriteLine(m);
         }
      }
      public static void Main(string[] args) {
         string str = "The Shape of Water got an Oscar Award!";
         Console.WriteLine("Display first letter of each word!");
         showMatch(str, @"\b[a-zA-Z]");
      }
   }
}

실행 결과

Display first letter of each word!
The Expression: \b[a-zA-Z]
T
S
o
W
g
a
O
A

실행 결과를 보면 "The Shape of Water got an Oscar Award!" 문장에서 각 단어의 첫 글자인 T, S, o, W, g, a, O, A가 순서대로 출력된 것을 확인할 수 있습니다. Regex.Matches 메서드는 입력 문자열에서 정규식과 일치하는 모든 부분을 MatchCollection 형태로 반환하므로, 이를 반복문으로 순회하면서 일치 항목을 하나씩 출력하는 방식으로 동작합니다.