집 >백엔드 개발 >C#.Net 튜토리얼 >C#의 정규식
C#에서는 정규식을 이용하여 패턴 매칭을 하고, C#에서는 정규식을 생성하기 위해 C#의 regex 클래스를 사용하는데, 정규식을 이용하여 문자열의 패턴 매칭과 교체에 대한 표준을 설정하고 이를 사용자를 통해 컴퓨터에 알려준다. 문자열에서 특정 패턴을 찾기 위해 찾고 있는 특정 패턴을 찾았을 때의 응답은 무엇이어야 하며 regex는 정규식의 약어입니다. C#의 전체 정규식은 텍스트를 식별하고 바꾸는 강력한 방법입니다. 특정 형식으로 정의된 문자열에서.
다음은 C#에서 정규식에 사용되는 기본 구문 목록입니다. 그들은:
중요 수량사 목록은 다음과 같습니다.
중요 특수문자 목록은 다음과 같습니다.
대괄호 안에 문자를 넣어 그룹화할 수 있습니다. 이렇게 하면 입력에서 최소한 하나의 문자가 클래스의 모든 문자와 일치하게 됩니다.
[]: []를 사용하여 다양한 문자를 일치시킬 수 있습니다. [Xyz]의 예를 생각해 보세요. 이 표현식은 x, y, z 중 하나와 일치합니다.
[c-r]의 예를 생각해 보세요. 이 표현식은 c와 r 사이의 모든 문자와 일치합니다.
괄호( 및 )를 사용하여 항목을 그룹화할 수 있습니다.
기본적으로 정규식 엔진에는 두 가지 유형이 있습니다. 텍스트 지향 엔진과 정규식 지향 엔진이 있습니다. 정규 표현식 지정 엔진은 정규 표현식의 다음 토큰을 다음 문자와 일치시키려고 정규 표현식을 검색합니다. 일치하는 항목이 발견되면 정규식은 진행되고, 그렇지 않으면 정규식의 이전 위치와 정규식 표현식을 통해 다른 경로를 시도할 수 있는 구문 분석할 문자열로 돌아갑니다. 텍스트 지향 엔진은 문자열의 다음 문자로 이동하기 전에 정규 표현식의 모든 순열을 시도하면서 문자열을 검색합니다. 역추적이나 역방향 텍스트 지향 엔진은 없습니다. 나중에 정확히 일치하는 항목을 찾을 가능성이 있더라도 항상 가장 왼쪽에 일치하는 항목이 정규식 엔진에 의해 반환됩니다. 엔진은 정규식이 문자열에 적용될 때마다 문자열의 첫 번째 문자로 시작합니다. 가능한 모든 순열이 첫 번째 문자에 적용되고 결과가 실패한 것처럼 보입니다. 그런 다음 순열이 문자열의 두 번째 문자로 이동되고 이 프로세스는 정규식 엔진이 정확히 일치하는 항목을 찾을 때까지 계속됩니다.
예를 들어보세요. 목욕하기 전에 욕조의 물을 확인하세요. 정규식 엔진은 위 문장에서 목욕이라는 단어를 찾도록 요청받습니다. 첫 번째 문자 C는 정규식 엔진에 의해 b와 일치하며 이는 실패입니다. 따라서 다음 문자 H는 정규식 엔진을 통해 b와 일치시키려고 시도하지만 이는 다시 실패합니다. 이런 일이 계속되고 정규식 엔진이 24번째 문자를 b와 일치시키려고 하면 일치합니다. 따라서 계속해서 욕조의 목욕이라는 단어를 목욕이라는 단어와 일치시키고 엔진은 욕조의 목욕이라는 단어를 올바른 일치로 보고하며 다른 일치 항목이 있는지 확인하기 위해 문에서 더 이상 진행되지 않습니다. 이것이 정규식 엔진이 내부적으로 작동하는 방식입니다.
C#의 정규식은 다음 방법을 사용합니다. 그들은:
휴대폰 번호 확인을 위해 정규식을 사용하는 방법을 보여주는 C# 프로그램
코드:
using System; using System.Text.RegularExpressions; class Check { static void Main(string[] args) { //Mobile numbers are given as a input to an array of strings string[] nos = {"9902147368", "9611967273", "63661820954"}; foreach(string s in nos) { Console.WriteLine("The mobile number {0} {1} a valid number.", s, checkvalid(s) ? "is" : "is not"); } Console.ReadKey(); } // Regex expressions are verified through this code block public static bool checkvalid(string Number) { string cRegex = @"(^[0-9]{10}$)|(^\+[0-9]{2}\s+[0-9] {2}[0-9]{8}$)|(^[0-9]{3}-[0-9]{4}-[0-9]{4}$)"; Regex res = new Regex(cRegex); if (res.IsMatch(Number)) return (true); else return (false); } }
출력:
위 내용은 C#의 정규식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!