정규 표현식 (Regex)을 C#에서 활용하는 방법

C#에서는 System.Text.RegularExpressions 네임스페이스 아래에 Regex 클래스를 통해 정규 표현식을 활용할 수 있습니다. 이 클래스는 문자열을 검색, 치환, 분할하는 메서드를 제공합니다.

1. 정규 표현식을 활용한 검증

다음은 이메일 주소의 형식을 검증하는 예제입니다.

using System;  
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        string pattern = @"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$";
        string email = "example@email.com";
        if (Regex.IsMatch(email, pattern)) {
            Console.WriteLine("올바른 이메일 형식입니다.");
        } else {
            Console.WriteLine("올바르지 않은 이메일 형식입니다.");
        }
    }
}

2. 문자열에서 매치된 내용 추출하기

Regex.Match 메서드를 사용하면 문자열에서 패턴에 맞는 부분을 추출할 수 있습니다.

string pattern = @"(\\d{3})-(\\d{3,4})-(\\d{4})";  
string phoneNumber = "010-1234-5678";  
Match match = Regex.Match(phoneNumber, pattern);

if (match.Success)  
{  
Console.WriteLine($"지역번호: {match.Groups\[1\].Value}");  
Console.WriteLine($"중간번호: {match.Groups\[2\].Value}");  
Console.WriteLine($"끝 번호: {match.Groups\[3\].Value}");  
}

3. 문자열 치환하기

정규 표현식을 활용하여 특정 패턴의 문자열을 다른 문자열로 치환할 수 있습니다.

string text = "Hello, my name is John.";  
string replacedText = Regex.Replace(text, @"John", "David");  
Console.WriteLine(replacedText); // 출력: Hello, my name is David.  

4. 주의 사항

정규 표현식은 강력하지만 복잡한 패턴에서는 CPU 리소스를 많이 사용할 수 있으므로 성능에 주의해야 합니다.
패턴을 작성할 때 가능한 간결하게 작성하며, 필요에 따라 온라인 정규 표현식 테스트 도구를 활용하여 테스트하는 것이 좋습니다.

5. 마치며

C#에서 제공하는 Regex 클래스를 활용하면, 다양한 문자열 처리 작업을 효율적으로 처리할 수 있습니다. 정규 표현식을 통해 복잡한 문자열 패턴을 손쉽게 다룰 수 있게 되므로, C# 프로그래밍에서 자주 활용되는 기술 중 하나입니다.

 

 

csv 행, 열 나누기

//행으로 나눈다.
public static string[] CSVToLine(string str)
{
    var lineArr = str.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
    return lineArr;
}

//열으로 나눈다.
public static string[] LineToColumn(string line)
{
    var columnArr = System.Text.RegularExpressions.Regex.Split(line, ",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");
    for (var i = 0; i < columnArr.Length; i++) {
        columnArr[i] = columnArr[i].TrimStart(' ', '"').TrimEnd('"', '\r');
        columnArr[i] = columnArr[i].Replace("\"\"", "\""); // 쌍따옴표 안의 쌍따옴표 처리
        columnArr[i] = columnArr[i].Replace("#n", "\n");
    }

    return columnArr;
}
반응형