具有非拉丁字符的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))
}

它产生以下结果:

 [One two three]
 []
 [Jedna dva t i ty i p t]

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

还是有更好的方法将句子拆分成单词而不用标点符号?

维克多·史翠比维

\w速记类只匹配ASCII字母GO正则表达式,因此,你需要一个Unicode字符类\p{L}

\w文字字符(== [0-9A-Za-z_]

使用字符类来包括数字和下划线:

    regexp.MustCompile("[\\p{L}\\d_]+")

演示的输出

[One two three]
[Раз два три]
[Jedna dva tři čtyři pět]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有拉丁字符的Golang正则表达式边界

来自分类Dev

正则表达式拉丁字符过滤器和非拉丁字符过滤器

来自分类Dev

Javascript正则表达式中的拉丁字符

来自分类Dev

正则表达式以拉丁字母的重音字符分割单词

来自分类Dev

我只接受拉丁字符的正则表达式表现异常

来自分类Dev

正则表达式以拉丁字母的重音字符分割单词

来自分类Dev

Java中的拉丁字母正则表达式

来自分类Dev

具有\ b和非单词字符的正则表达式(例如'。')

来自分类Dev

具有“非字符”的正则表达式与预期的不匹配

来自分类Dev

通过python正则表达式提取具有非ASCII字符的单词

来自分类Dev

正则表达式允许使用拉丁字母和数字,并不允许使用空格

来自分类Dev

如何构建正则表达式来搜索具有非字母数字字符的字符串?

来自分类Dev

PCRE 正则表达式。允许拉丁、希伯来和希腊字符

来自分类Dev

皮格拉丁正则表达式

来自分类Dev

在正则表达式中选择具有特定字符的字符串

来自分类Dev

从具有Unicode字符的字符串中生成正则表达式

来自分类Dev

使用正则表达式搜索具有特殊字符的子字符串

来自分类Dev

具有重复字符的字符串之间的js正则表达式

来自分类Dev

POSIX正则表达式忽略非ASCII字符?

来自分类Dev

正则表达式使用\ w给出非字符

来自分类Dev

正则表达式将所有土耳其符号替换为常规拉丁符号

来自分类Dev

正则表达式将所有格鲁吉亚符号替换为常规拉丁符号

来自分类Dev

查找与正则表达式golang匹配的所有字符串

来自分类Dev

正则表达式替换所有非AZ的前导字符

来自分类Dev

正则表达式:查找包含非字母字符的所有行吗?

来自分类Dev

正则表达式替换所有非AZ的前导字符

来自分类Dev

为特定子字符串创建带有“非”条件的正则表达式

来自分类Dev

创建当有特定类型的非重复字符时匹配的正则表达式

来自分类Dev

正则表达式掩码具有变化的忽略字符

Related 相关文章

  1. 1

    带有拉丁字符的Golang正则表达式边界

  2. 2

    正则表达式拉丁字符过滤器和非拉丁字符过滤器

  3. 3

    Javascript正则表达式中的拉丁字符

  4. 4

    正则表达式以拉丁字母的重音字符分割单词

  5. 5

    我只接受拉丁字符的正则表达式表现异常

  6. 6

    正则表达式以拉丁字母的重音字符分割单词

  7. 7

    Java中的拉丁字母正则表达式

  8. 8

    具有\ b和非单词字符的正则表达式(例如'。')

  9. 9

    具有“非字符”的正则表达式与预期的不匹配

  10. 10

    通过python正则表达式提取具有非ASCII字符的单词

  11. 11

    正则表达式允许使用拉丁字母和数字,并不允许使用空格

  12. 12

    如何构建正则表达式来搜索具有非字母数字字符的字符串?

  13. 13

    PCRE 正则表达式。允许拉丁、希伯来和希腊字符

  14. 14

    皮格拉丁正则表达式

  15. 15

    在正则表达式中选择具有特定字符的字符串

  16. 16

    从具有Unicode字符的字符串中生成正则表达式

  17. 17

    使用正则表达式搜索具有特殊字符的子字符串

  18. 18

    具有重复字符的字符串之间的js正则表达式

  19. 19

    POSIX正则表达式忽略非ASCII字符?

  20. 20

    正则表达式使用\ w给出非字符

  21. 21

    正则表达式将所有土耳其符号替换为常规拉丁符号

  22. 22

    正则表达式将所有格鲁吉亚符号替换为常规拉丁符号

  23. 23

    查找与正则表达式golang匹配的所有字符串

  24. 24

    正则表达式替换所有非AZ的前导字符

  25. 25

    正则表达式:查找包含非字母字符的所有行吗?

  26. 26

    正则表达式替换所有非AZ的前导字符

  27. 27

    为特定子字符串创建带有“非”条件的正则表达式

  28. 28

    创建当有特定类型的非重复字符时匹配的正则表达式

  29. 29

    正则表达式掩码具有变化的忽略字符

热门标签

归档