>백엔드 개발 >Golang >Go에서 Runes 패키지를 사용하여 문자열에서 악센트를 제거하려면 어떻게 해야 합니까?

Go에서 Runes 패키지를 사용하여 문자열에서 악센트를 제거하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-03 00:15:03200검색

How Can I Use the Runes Package to Remove Accents From Strings in Go?

Go의 룬 패키지: 악센트 문자 변환

Go에서 일반적인 작업은 악센트 문자를 악센트가 없는 문자로 변환하는 것입니다. 한 가지 접근 방식은 표준 및 텍스트와 같은 유니코드 패키지를 사용하는 것입니다. 하지만 이러한 패키지는 초보자에게는 복잡할 수 있습니다.

더 간단한 해결책은 Go 1.5(2015년 8월 출시) 및 Go 1.6(2016년 1분기 출시 예정)에 도입된 runes 패키지를 사용하는 것입니다. runes 패키지는 일반적으로 악센트를 담당하는 공백 없는 표시(Mn)를 제거하는 보다 간단한 방법을 제공합니다.

다음은 runes 패키지를 사용하여 문자열에서 악센트를 제거하는 방법에 대한 예입니다.

<code class="go">import (
    "fmt"
    "runes"
    "bytes"
    "code.google.com/p/go.text/transform"
    "code.google.com/p/go.text/unicode/norm"
)

func main() {
    r := bytes.NewBufferString("Your Śtring")
    t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC)
    r = transform.NewReader(r, t)
    fmt.Println(r)

    // Output:
    // Your String
}</code>

이 코드는 변환.Chain 함수를 사용하여 문자열에 일련의 변환을 적용합니다. 먼저 문자열을 유니코드 정규화 형식(NFD)으로 분해하여 기본 문자와 액센트를 구분합니다. 그런 다음 runes.Remove 함수를 적용하여 Mn(비간격 표시) 범주에 속하는 모든 룬을 필터링합니다. 마지막으로, 남은 발음 구별 부호를 제거하기 위해 문자열을 정규화된 형식(NFC)으로 다시 구성합니다.

그 결과, 악센트 부호가 있는 문자열 "Your Śtring"은 non을 제거한 후 "Your String"으로 변환됩니다. -간격 표시.

위 내용은 Go에서 Runes 패키지를 사용하여 문자열에서 악센트를 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.