小编Kei*_*eir的帖子

Golang正则表达式与非拉丁字符

我需要熟练的地鼠的一些建议.

我正在解析一些句子中的单词,我的正则\w+表达式可以正常使用拉丁字符.然而,它完全失败了一些西里尔字符.

这是一个示例应用程序:

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))
}
Run Code Online (Sandbox Code Playgroud)

它产生以下结果:

 [One two three]
 []
 [Jedna dva t i ty i p t]
Run Code Online (Sandbox Code Playgroud)

它返回俄语的空值和捷克语的额外音节.我不知道如何解决这个问题.有人可以给我一些建议吗?

或者也许有更好的方法将句子分成没有标点符号的单词?

regex go

12
推荐指数
1
解决办法
5128
查看次数

标签 统计

go ×1

regex ×1