c# regex 예제

Sem imagem cadastrada

예제가 실행 및 실행으로 컴파일되고 실행되면 RegexLib.dll이라는 어셈블리가 만들어집니다. 정규식은 유틸리티.정규식.정규표현식.정규식에서 파생된 정규식.문장패턴이라는 클래스로 표시됩니다. 다음 예제에서는 컴파일된 정규식을 사용하여 시어도어 드라이저즈 더 피낸시어의 텍스트에서 문장을 추출합니다. 다음 예제에서는 정규식을 시간 시간 간격350밀리초로 인스턴스화하여 텍스트 문서의 단어 수와 평균 문자 수를 계산하는 GetWordData 메서드를 정의합니다. 일치하는 작업 시간이 시간 만되면 시간 시간 간격이 350밀리초 증가하고 정규선 오브젝트가 다시 인스턴스화됩니다. 새 시간 초과 간격이 1초를 초과하면 메서드는 호출자에게 예외를 다시 throw합니다. 이전에 컴파일된 정규식을 사용하여 새 정규표현식 개체를 인스턴스화하는 경우 예를 들어 다음 코드는 텍스트 스트림에서 중복된 단어를 찾기 위해 정규식을 정의합니다. 예제에서는 단일 정규식을 사용하지만 새 정규표현식 개체를 인스턴스화하여 각 텍스트 줄을 처리합니다. 이렇게 하면 루프의 각 반복과 함께 정규식의 재컴파일이 발생합니다.

역추적이 필요하지 않다고 판단되면 (?>하위 표현식) 언어 요소를 사용하여 역추적을 비활성화할 수 있습니다. 다음 예제는 두 개의 정규식을 사용하여 입력 문자열을 구문 분석합니다. 첫 번째 bp{Lu}w*b는 역추적에 의존합니다. 두 번째 bp{Lu}(?w*)b는 역추적을 비활성화합니다. 예제의 출력에서 볼 수 있듯이 둘 다 동일한 결과를 생성합니다. 다음 예제에서는 정규식을 사용하여 문자열에서 반복되는 단어 발생을 확인합니다. 정규식 b( w+)s+(k)b는 다음 표에 표시된 대로 해석될 수 있습니다. IsValidCurrency 메서드의 매우 비효율적인 구현은 다음 예제에 나와 있습니다. 각 메서드 호출은 동일한 패턴으로 정규고 개체를 다시 인스턴스화합니다. 즉, 메서드가 호출될 때마다 정규식 패턴을 다시 컴파일해야 합니다. 다시 컴파일을 방지하려면 다음 다시 작성된 예제와 같이 필요한 모든 코드에 액세스할 수 있는 단일 정규식 개체를 인스턴스화해야 합니다. 다음 예제에서는 컴파일된 정규식이 포함된 어셈블리를 만드는 방법을 보여 주며 있습니다.

해석 된 정규식 섹션에 사용되는 문장 일치 정규식 패턴을 포함하는 단일 정규식 클래스 인 SentencePattern을 사용하여 RegexLib.dll이라는 어셈블리를 만듭니다. 다음 예제에서는 Match(문자열, String) 메서드를 호출하여 하나 이상의 z 문자를 포함하는 첫 번째 단어를 찾은 다음 Match.NextMatch 메서드를 호출하여 추가 일치 항목을 찾습니다. 하위 표현식을 사용하여 수량자를 적용하고 캡처된 텍스트에 관심이 없는 경우 그룹 캡처를 사용하지 않도록 설정해야 합니다. 예를 들어(?:subexpression) 언어 요소는 적용되는 그룹이 일치하는 하위 문자열을 캡처하지 못하도록 합니다. 다음 예제에서는 이전 예제의 정규식 패턴이 b(?:\)로 변경됩니다. w +[;,]?s?) +[.?!].