[C# 정규표현식] 정규표현식 - 이메일 주소 찾기

참조

  • 손에 잡히는 정규 표현식


문자 하나 이상 찾기

  • 오늘은 C# 정규표현식에서 문자 하나 이상을 찾는 방법에 대해서 알려 드리려고 합니다.
  • 문자나 집합에 속한 요소를 하나 이상 찾으려면 간단히 문자 뒤에 더하기(+) 문자를 붙이면 됩니다.
  • 더하기(+)는 문자가 하나 이상일 때 일치합니다.
  • a가 a를 찾는 데 반해, a+는 하나 이상 연속된 a를 찾습니다.
  • [0-9]는 자릿수가 하나인 숫자를 찾는데 반해, [0-9]+는 한 자리 이상 연속된 숫자를 찾습니다.


예제 코드

  • 아래는 이메일 주소를 찾는 예제 코드입니다.
  • 더하기(+) 기호를 통해 하나 이상의 문자와 일치 시켜 보도록 하겠습니다.
Send personal email to ben@forta.com. For questions
about a book use support@forta.com. Feel free to send
unsolicited email to spam@namer.com (Wouldn't it be 
nice if it were that simple, huh?).
using System;
using System.Text.RegularExpressions;

namespace interfaceTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"C:\Users\Desktop\RegexTest.txt"; 
            string textValue = System.IO.File.ReadAllText(path); 
            string pattern = @"\w+@\w+\.\w+";

            var matches = Regex.Matches(textValue.ToString(), pattern);

            foreach(var match in matches)
            {
                Console.WriteLine($"{pattern} 패턴에 매칭된 데이터 {match}");
            }
        }
    }
}
\w+@\w+\.\w+ 패턴에 매칭된 데이터 ben@forta.com
\w+@\w+\.\w+ 패턴에 매칭된 데이터 support@forta.com
\w+@\w+\.\w+ 패턴에 매칭된 데이터 spam@namer.com
  • 위와 같이 \w+@\w+\.\w+ 패턴을 이용해서 이메일 주소 세 개와 정확하게 일치했습니다.
  • 정규 표현식 \w+를 사용해 우선 하나 이상 연속된 영숫자 문자를 찾았고, 이어서 @을 찾은 다음, 다시 \w+로 하나 이상 연속된 문자를 찾았습니다.
  • 그리고 마침표(.) 문자를 \로 이스케이프 하여 마침표(.) 문자도 찾았습니다.
  • 마지막으로 한 번 더 \w+를 사용해 주소의 마지막 부분을 찾아서 결국 세 개의 이메일 주소를 모두 찾았습니다.
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY