다음을 통해 공유


방법: 정규식을 사용하여 문자열 검색(C# 프로그래밍 가이드)

System.Text.RegularExpressions.Regex 클래스를 사용하여 문자열을 검색할 수 있습니다. 매우 단순한 검색에서 정규식을 최대한 활용하는 매우 복잡한 검색까지 다양한 검색을 수행할 수 있습니다. 다음 두 예제에서는 Regex 클래스를 사용하여 문자열을 검색하는 방법을 보여 줍니다. 자세한 내용은 .NET Framework 정규식을 참조하십시오.

예제

다음 코드는 배열에서 대/소문자를 구분하지 않는 단순 문자열 검색을 수행하는 콘솔 응용 프로그램입니다. 정적 메서드인 Regex.IsMatch에서는 검색할 문자열 및 검색 패턴을 포함하는 문자열을 사용하여 검색을 수행합니다. 이 경우에는 세 번째 인수를 사용하여 대/소문자를 무시하도록 지정합니다. 자세한 내용은 System.Text.RegularExpressions.RegexOptions를 참조하십시오.

class TestRegularExpressions
{
    static void Main()
    {
        string[] sentences = 
        {
            "C# code",
            "Chapter 2: Writing Code",
            "Unicode",
            "no match here"
        };

        string sPattern = "code";

        foreach (string s in sentences)
        {
            System.Console.Write("{0,24}", s);

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
            {
                System.Console.WriteLine("  (match for '{0}' found)", sPattern);
            }
            else
            {
                System.Console.WriteLine();
            }
        }

        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();

    }
}
/* Output:
           C# code  (match for 'code' found)
           Chapter 2: Writing Code  (match for 'code' found)
           Unicode  (match for 'code' found)
           no match here
*/

다음 코드는 정규식을 사용하여 배열에서 각 문자열 형식의 유효성을 검사하는 콘솔 응용 프로그램입니다. 유효성 검사를 통과하려면 각 문자열의 형식이 전화 번호와 같아야 합니다. 즉 세 그룹의 숫자가 대시(-)로 구분되어야 하고 처음 두 그룹에는 세 개, 세 번째 그룹에는 네 개의 숫자가 있어야 합니다. 이는 정규식 ^\\d{3}-\\d{3}-\\d{4}$를 사용하여 수행할 수 있습니다. 자세한 내용은 정규식 언어 요소를 참조하십시오.

class TestRegularExpressionValidation
{
    static void Main()
    {
        string[] numbers = 
        {
            "123-555-0190", 
            "444-234-22450", 
            "690-555-0178", 
            "146-893-232",
            "146-555-0122",
            "4007-555-0111", 
            "407-555-0111", 
            "407-2-5555", 
        };

        string sPattern = "^\\d{3}-\\d{3}-\\d{4}$";

        foreach (string s in numbers)
        {
            System.Console.Write("{0,14}", s);

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern))
            {
                System.Console.WriteLine(" - valid");
            }
            else
            {
                System.Console.WriteLine(" - invalid");
            }
        }

        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();
    }
}
/* Output:
      123-555-0190 - valid
     444-234-22450 - invalid
      690-555-0178 - valid
       146-893-232 - invalid
      146-555-0122 - valid
     4007-555-0111 - invalid
      407-555-0111 - valid
        407-2-5555 - invalid
*/

참고 항목

개념

C# 프로그래밍 가이드

문자열(C# 프로그래밍 가이드)