1. 기본 방법 (정규식 이용 x)
* 반드시 @ 문자를 한번 포함해야 한다.
* @문자 이전의 문자열에는 문자와 숫자만 허용된다(특수문자 x)
* @문자 이후의 문자열에는 문자와 숫자가 허용되지만 반드시 하나의 . 이 포함되어야 한다.
static void Main(string[] args)
{
Console.WriteLine("System.Text.RegularExpressions.Regex");
string email = "tjdskaqks@gmail.com";
Console.WriteLine(IsEmail(email));
}
private static bool IsEmail(string email)
{
string[] parts = email.Split('@');
if (parts.Length != 2) // @구분 지어진 배열 길이가 2가 아니면 false
{
return false;
}
if (!InAlphaNumeric(parts[0])) // @ 앞 문자열이 알파펫과 숫자가 아니면 false 리턴
{
return false;
}
parts = parts[1].Split('.');
if (parts.Length is 1) // @ 뒷 문자열이 .으로 나뉘고 길이가 1이면 false 리턴
{
return false;
}
foreach (var stringindex in parts)
{
if (!InAlphaNumeric(stringindex))
{
return false;
}
}
return true;
}
private static bool InAlphaNumeric(string v)
{
foreach (char item in v)
{
if (!char.IsLetterOrDigit(item))
{
return false;
}
}
return true;
}
2. 정규식 이용
* ^([0-9a-zA-Z]+)@([0-9a-zA-Z]+)(\.[0-9a-zA-Z]+){1,}$
^ : 문장의 시작이 다음 규칙을 만족해야 함.
([0-9a-zA-Z]+) : 영숫자 1개 이상
@ : 반드시 @ 문자가 있음
([0-9a-zA-Z]+) : 영숫자 1개 이상
(\.[0-9a-zA-Z]+) : .점과 1개 이상의 영숫자
{1,} : 이전의 규칙이 1번 이상 반복 (즉, .점과 1개 이상의 영숫자가 반복)
$ : 이전의 규칙을 반복하면서 끝남 (즉 .점과 1개 이상의 영숫자가 1번 이상 반복되면서 끝)
static void Main(string[] args)
{
Console.WriteLine("System.Text.RegularExpressions.Regex");
string email = "tjdskaqks@gmail.com";
Console.WriteLine(IsEmail2(email));
}
private static bool IsEmail2(string email)
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"^([0-9a-zA-Z]+)@([0-9a-zA-Z]+)(\.[0-9a-zA-Z]+){1,}$");
return regex.IsMatch(email);
}
'C#' 카테고리의 다른 글
[C#] BCL DataContractJsonSerializer을 이용한 객체 JSON 직렬화 (0) | 2020.11.30 |
---|---|
[C#] BCL MemoryStream, StreamWriter/Reader, BinaryWriter/Reader (0) | 2020.11.29 |
[C#] BCL Encoding 타 언어 프로그램과 데이터 주고 받기 (0) | 2020.11.29 |
[C#] BCL string과 StringBuilder의 차이점 (0) | 2020.11.29 |
[C#] BCL string Format 자리수 지정 (0) | 2020.11.28 |