C#의 정규 표현식 그룹: 일치 결과 이해
다음 C# 코드 블록을 고려하세요.
<code class="csharp">var pattern = @"\[(.*?)\]"; var matches = Regex.Matches(user, pattern); if (matches.Count > 0 && matches[0].Groups.Count > 1) ...</code>
이것은 코드는 정규식을 사용하여 사용자 입력 문자열에서 대괄호로 묶인 텍스트를 추출합니다. 입력 "Josh Smith [jsmith]"에 대해 코드는 다음 결과를 올바르게 반환합니다.
matches.Count == 1 matches[0].Value == "[jsmith]"
그러나 후속 줄에서는 질문이 제기됩니다.
matches[0].Groups.Count == 2 matches[0].Groups[0].Value == "[jsmith]" matches[0].Groups[1].Value == "jsmith"
일치 그룹화
정규식에서 그룹은 일치 항목의 특정 부분을 캡처하는 데 사용됩니다. 기본적으로 전체 일치 항목은 그룹 0에 캡처됩니다. 추가 캡처 그룹은 괄호를 사용하여 정의할 수 있습니다.
제공된 코드에서 정규식은 (.*?)로 표시되는 단일 캡처 그룹을 정의합니다. 이 그룹은 대괄호 안의 텍스트를 캡처합니다(이 경우 jsmith). 따라서:
중첩 그룹
더 복잡한 정규 표현식에서는 중첩 그룹을 가질 수 있습니다. 이러한 경우 각 그룹에는 자체 캡처 세트가 포함됩니다. 그러나 제공된 코드에는 그룹화 수준이 하나만 있으므로
추가 고려 사항
위 내용은 C#의 정규식 그룹은 어떻게 일치하는 하위 문자열을 캡처하고 액세스합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!