Go의ReplaceAllString 함수 출력 이해
Go의 바꾸기AllString 함수는 문자열 내에서 정규식과 일치하는 모든 항목을 바꾸는 방법을 제공합니다. . 제공된 예제 코드의 첫 번째 출력은 이해하기 간단하지만 후속 출력은 혼란스러워 보일 수 있습니다.
출력 2 및 4: $1 역참조 이해
두 번째 네 번째 출력인 $1은 정규식 a(x)b의 첫 번째 괄호 세트로 정의된 캡처 그룹을 나타냅니다. 이 캡처 그룹은 임의 개수의 'x' 문자로 구성된 문자열을 일치시키고 캡처합니다.
출력 3: $1 이해 W
세 번째 출력(fmt.Println(re.ReplaceAllString("-ab-axxb-", "$1W")))이 가장 흥미롭습니다. 바꾸기 패턴의 "$ 기호"는 Expand 함수에서와 같이 해석됩니다.
Repl 내부에서 $ 기호는 ExpandExpand는 다음을 지정합니다.
템플릿에서 변수는 $name 또는 ${name} 형식의 하위 문자열로 표시됩니다. 여기서 name은 비어 있지 않은 문자, 숫자의 시퀀스입니다. 및 밑줄.범위를 벗어났거나 일치하지 않는 인덱스 또는 정규 표현식에 없는 이름에 대한 참조는 빈 조각으로 대체됩니다.
$name 형식에서 이름은 다음과 같이 간주됩니다. 가능한 한 길게: $1x는 ${1}x가 아닌 ${1x}와 동일하며, $10은 ${1}0이 아닌 ${10}와 동일합니다.
빈 문자열("")으로 교체됩니다.
위 내용은 캡처 그룹 \'1W\'가 정규식에 정의되지 않은 경우 Go\의 바꾸기AllString 함수는 \'$1W\'의 대체를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!