Potrzebuję porady od wykwalifikowanych świstaków.Reagowanie golang ze znakami innymi niż łacińskie
Parsuję wyrazy z niektórych zdań, a moje wyrażenie regularne działa dobrze w przypadku znaków alfabetu łacińskiego. Jednak całkowicie zawiedzie niektóre znaki cyrylicy.
Tutaj jest app próbki:
package main
import (
"fmt"
"regexp"
)
func get_words_from(text string) []string {
words := regexp.MustCompile("\\w+")
return words.FindAllString(text, -1)
}
func main() {
text := "One, two three!"
text2 := "Раз, два три!"
text3 := "Jedna, dva tři čtyři pět!"
fmt.Println(get_words_from(text))
fmt.Println(get_words_from(text2))
fmt.Println(get_words_from(text3))
}
otrzymuje on następujące wyniki:
[One two three]
[]
[Jedna dva t i ty i p t]
Zwraca pustych wartości rosyjskim i dodatkowe sylaby do Czech. Nie mam pojęcia, jak rozwiązać ten problem. Czy ktoś może udzielić mi porady?
A może jest lepszy sposób na podzielenie zdania na słowa bez interpunkcji?
spróbować 'regexp.MustCompile (" \\ p {L} + ")' –