Мне нужны советы от опытных сусликов.
Я разбираю слова из некоторых предложений, а мой \w+
regexp отлично работает с латинскими символами. Однако он полностью терпит неудачу с некоторыми кириллическими символами.
Вот пример приложения:
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))
}
Это дает следующие результаты:
[One two three]
[]
[Jedna dva t i ty i p t]
Он возвращает пустые значения для русского языка и дополнительные слоги для чешского языка. Я не знаю, как решить эту проблему. Может ли кто-нибудь дать мне совет?
Или, может быть, есть лучший способ разбить предложение на слова без знаков препинания?