[C# 정규표현식] 특정한 문자 형태와 일치시키기

참조

  • 손에 잡히는 정규표현식


특정한 문자 형태와 일치시키기

  • 지금까지 특정 문자, 모든 문자, 문자 집합 가운데 하나를 어떻게 찾는지 알아보았고, 어떻게 문자를 제외하는지도 알아보았습니다.
  • 문자 집합은 검색에서 쓰는 가장 흔한 형태이기에, 자주 쓰는 문자 집합들은 특수한 메타 문자로 대신하기도 합니다.
  • 이런 메타 문자들을 문자 클래스 라고 부릅니다.


숫자와 숫자가 아닌 문자 찾기

  • 앞서 배웠듯이, [0-9]는 [0123456789]을 줄인 표현이고 어떤 숫자와도 일치합니다.
  • 숫자를 제외한 문자를 찾으려면, [^0-9]처럼 제외하는 메타 문자를 사용합니다.
메타문자 설명
\d 숫자 하나
\D 숫자를 제외한 문자 하나


예제 코드

var myArray = new Array();
...
if (myArray[0] == 0) {
...
}
using System;
using System.Text.RegularExpressions;

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

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

            foreach(var match in matches)
            {
                Console.WriteLine($"{pattern} 패턴에 매칭된 데이터 {match}");
            }
        }
    }
}
myArray\[\d\] 패턴에 매칭된 데이터 myArray[0]
  • [는 여는 대괄호([) 와 일치하고, \d 는 숫자 하나와 일치하고, ]는 닫는 대괄호(]) 와 일치하므로, myArray[\d] 는 myArray[0] 과 일치합니다.
  • 즉, myArray[[0123456789]] 는 myArray[[0-9]]로, myArray[[0-9]] 는 다시 myArray[\d] 로 줄여서 표현한 것입니다.


주의

  • 정규 표현 문법은 대소문자를 구별합니다.
  • \d는 숫자 하나와 일치하고, \D는 \d와 뜻이 정반대입니다.
  • 대소문자를 구별하지 않고 검색을 수행할 때도 정규 표현식 문법은 대소문자를 구별합니다.
  • 찾으려는 텍스트는 대소문자를 구별하지 않고 텍스트를 찾더라도, \d와 같은 특수한 문자는 대소문자를 구별합니다.
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY