C #-정규식

regular expression입력 텍스트와 일치시킬 수있는 패턴입니다. .Net 프레임 워크는 이러한 일치를 허용하는 정규식 엔진을 제공합니다. 패턴은 하나 이상의 문자 리터럴, 연산자 또는 구성으로 구성됩니다.

정규식 정의를위한 구문

정규식을 정의 할 수있는 다양한 범주의 문자, 연산자 및 구성이 있습니다. 이러한 구성을 찾으려면 다음 링크를 클릭하십시오.

  • 문자 이스케이프

  • 캐릭터 클래스

  • Anchors

  • 그룹화 구성

  • Quantifiers

  • 역 참조 구조

  • 대체 구조

  • Substitutions

  • 기타 구조

Regex 클래스

Regex 클래스는 정규식을 나타내는 데 사용됩니다. 다음과 같은 일반적으로 사용되는 방법이 있습니다.

Sr. 아니. 방법 및 설명
1

public bool IsMatch(string input)

Regex 생성자에 지정된 정규식이 지정된 입력 문자열에서 일치하는 항목을 찾는 지 여부를 나타냅니다.

2

public bool IsMatch(string input, int startat)

Regex 생성자에 지정된 정규식이 문자열의 지정된 시작 위치에서 시작하여 지정된 입력 문자열에서 일치하는 항목을 찾는 지 여부를 나타냅니다.

public static bool IsMatch(string input, string pattern)

지정된 정규식이 지정된 입력 문자열에서 일치하는 항목을 찾는 지 여부를 나타냅니다.

4

public MatchCollection Matches(string input)

지정된 입력 문자열에서 모든 정규식 발생을 검색합니다.

5

public string Replace(string input, string replacement)

지정된 입력 문자열에서 정규식 패턴과 일치하는 모든 문자열을 지정된 대체 문자열로 바꿉니다.

6

public string[] Split(string input)

Regex 생성자에 지정된 정규식 패턴으로 정의 된 위치에서 입력 문자열을 하위 문자열 배열로 분할합니다.

메서드 및 속성의 전체 목록은 C #에 대한 Microsoft 설명서를 참조하십시오.

예 1

다음 예제는 'S'로 시작하는 단어와 일치합니다.

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      private static void showMatch(string text, string expr) {
         Console.WriteLine("The Expression: " + expr);
         MatchCollection mc = Regex.Matches(text, expr);
         
         foreach (Match m in mc) {
            Console.WriteLine(m);
         }
      }
      static void Main(string[] args) {
         string str = "A Thousand Splendid Suns";
         
         Console.WriteLine("Matching words that start with 'S': ");
         showMatch(str, @"\bS\S*");
         Console.ReadKey();
      }
   }
}

위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.

Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns

예 2

다음 예제는 'm'으로 시작하고 'e'로 끝나는 단어와 일치합니다.

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      private static void showMatch(string text, string expr) {
         Console.WriteLine("The Expression: " + expr);
         MatchCollection mc = Regex.Matches(text, expr);
         
         foreach (Match m in mc) {
            Console.WriteLine(m);
         }
      }
      static void Main(string[] args) {
         string str = "make maze and manage to measure it";

         Console.WriteLine("Matching words start with 'm' and ends with 'e':");
         showMatch(str, @"\bm\S*e\b");
         Console.ReadKey();
      }
   }
}

위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.

Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure

예제 3

이 예제는 여분의 공백을 대체합니다.

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      static void Main(string[] args) {
         string input = "Hello   World   ";
         string pattern = "\\s+";
         string replacement = " ";
         
         Regex rgx = new Regex(pattern);
         string result = rgx.Replace(input, replacement);

         Console.WriteLine("Original String: {0}", input);
         Console.WriteLine("Replacement String: {0}", result);    
         Console.ReadKey();
      }
   }
}

위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.

Original String: Hello World   
Replacement String: Hello World