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 중국어 웹사이트의 기타 관련 기사를 참조하세요!