C# 정규식 | C# Regular expressions | JMON

jmon·2021년 3월 22일
0
post-thumbnail

📄 설명

📣 설명

정규식은 텍스트를 처리하는 강력하고 유연하며 효율적인 방법을 제공합니다. 정규식의 광범위한 패턴 일치 표기법을 사용하면 많은 양의 텍스트를 빠르게 구문 분석하여 다음을 할 수 있습니다.

  • 특정 문자 패턴을 찾습니다.
  • 텍스트의 유효성을 검사하여 미리 정의된 패턴(예: 전자 메일 주소)과 일치하는지 확인합니다.
  • 텍스트 하위 문자열을 추출, 편집, 바꾸기 또는 삭제합니다.
  • 보고서를 생성하기 위해 추출된 문자열을 컬렉션에 추가합니다.

문자열을 처리하거나 텍스트의 큰 블록을 구문 분석하는 많은 애플리케이션의 경우 정규식은 필수적인 도구입니다.
(Microsoft Document 참조)

📄 사용방법

📣 준비

✍ 네임스페이스

using System;
using System.Text.RegularExpressions;

✍ 용어 설명

  • ^ : 바로 뒤 텍스트로 시작
  • $ : 바로 앞 텍스트로 종료
  • .(점) : 임의의 텍스트 1개
    A.B ? ABC, A1B, AAB : AB, AA, AC
  • * : 임의의 텍스트 0개 이상
    A*B ? AAAAB, ACDB : AAA, BA, BBA
  • + : 바로 앞 텍스트 1개 이상
    A+B ? AB, AAB, AAAB : AC, BB, BA
  • ? : 바로 앞 텍스트가 0개거나 1개
    A?B ? AB, ACB, A1B : A, AAB
  • | : OR 연산자
    A|B ? A, B : AB, AB
  • [] : 조건부호
    [a-z] 소문자 [A-Z] 대문자 [0-9] 숫자 [가-힣] 한글 [\s] 공백 [a-zA-Z가-힣] ...
  • {} : 바로 앞 텍스트 반복수
    [a-z]{3} 소문자 3개의 텍스트 [0-9]{1,3} 숫자 1~3자리 [\s]{2,} 2개 이상의 공백
  • () : 문자 그룹
    (AB){2} ABAB (AB)* ABABABAB...
  • \ : 특수문자 <=> 일반 텍스트
    IP 주소 : [0-9]{3}\.[0-9]{3}\.[0-9]{3}

📣 예시

✍ 일치 여부 확인

string phone_number = "010-1234-5678";
Regex regex = new Regex(@"^01[01678]-[0-9]{4}-[0-9]{4}$");
if (regex.IsMatch(phone_number))    
{
    Console.WriteLine("Match");
} 
else 
{
    Console.WriteLine("Miss Match");
}
// 결과값 : Match

✍ 일치하는 텍스트 추출

string ip_address = "내 ip 주소는 123.456.789 입니다";
Regex regex = new Regex(@"^*[0-9]{3}\.[0-9]{3}\.[0-9]{3}$*");
MatchCollection resultColl = regex.Matches(ip_address);
for (int i = 0; i < resultColl.Count; i++)
{
	if ((resultColl[i].Groups[0]).ToString().Trim() != "") 
	{
		Console.WriteLine((resultColl[i].Groups[0]).ToString().Trim());
	}
}
// 결과값 : 123.456.789

📄 참고자료

🎈 Microsoft Document : https://docs.microsoft.com/ko-kr/dotnet/standard/base-types/regular-expressions

profile
Fullstack Developer

관심 있을 만한 포스트

0개의 댓글