> 백엔드 개발 > Golang > 단어에서 특수 문자 제거

단어에서 특수 문자 제거

WBOY
풀어 주다: 2024-02-06 10:48:08
앞으로
868명이 탐색했습니다.

단어에서 특수 문자 제거

질문 내용

go에 개별 단어를 정리하여 각 단어의 시작과 끝에서 특수 문자를 제거하는 함수를 작성하고 있습니다.

즉:

  • .-안녕하세요,->안녕하세요
  • "백투백"->백투백

각 끝 문자를 문자별로 확인하여 unicode.letter 세트에 속하는지 확인하여 다음과 같은 결과를 얻었습니다. 이는 훌륭하게 작동하지만 이를 수행하는 더 좋고 효율적인 방법이 있는지 궁금합니다. strings.trimleft/right를 시도했지만 제거할 문자 세트를 직접 정의해야 했습니다. 미리 정의된 컬렉션을 사용하는 것이 좋을 것입니다.

func TrimWord(word []rune) string {
    var prefix int = 0
    var suffix int = len(word)

    for x := 0; x < len(word); x++ {
        if !unicode.IsLetter(word[x]) {
            prefix++
        } else {
            break
        }
    }

    for x := len(word) - 1; x >= 0; x-- {
        if suffix == prefix {
            break
        }
        if !unicode.IsLetter(word[x]) {
            suffix--
        } else {
            break
        }
    }
    return string(word[prefix:suffix])
}
로그인 후 복사


정답


package main

import (
    "fmt"
    "strings"
    "unicode"
)

func trimword(s string) string {
    return strings.trimfunc(s, func(r rune) bool {
        return !unicode.isletter(r)
    })
}

func main() {
    fmt.println(trimword(`.-hello,`))       // -> hello
    fmt.println(trimword(`"back-to-back"`)) // -> back-to-back
}
로그인 후 복사

https://www.php.cn/link/55053683268957697aa39fba6f231c68

으아악

패키지 문자열

으아악

trimfunc는 f(c)를 만족하는 모든 선행 및 후행 유니코드 코드 포인트 c가 제거된 문자열 s의 조각을 반환합니다.

위 내용은 단어에서 특수 문자 제거의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿