英文:
Check if a character is Russian
问题
我想知道一个字符串是否包含俄语/西里尔字母。
对于拉丁字符,我会这样做(伪代码):
text := "test"
for _, r := range []rune(text) {
if r >= 'a' && r <= 'z' {
return True
}
}
return False
那么对于俄语/西里尔字母,应该如何实现呢?
英文:
I would like to know if a string contains Russian/Cyrillic characters.
For latin characters, I do something like this (pseudocode):
text := "test"
for _, r := range []rune(text) {
if r >= 'a' && r <= 'z' {
return True
}
}
return False
What is the corresponding way to do it for Russian/Cyrillic alphabet?
答案1
得分: 14
这似乎有效:
unicode.Is(unicode.Cyrillic, r) // r 是一个 rune
英文:
This seems to work
unicode.Is(unicode.Cyrillic, r) // r is a rune
答案2
得分: 1
我已经根据这个Unicode表为查找俄语大写字符编写了一个示例实现:
func isRussianUpper(text string) bool {
for _, r := range []rune(text) {
if r < '\u0410' || r > '\u042F' {
return false
}
}
return true
}
你可以按照这种方式处理任何字符集。只需修改你感兴趣的字符的代码即可。
英文:
I went on and did this example implementation for finding russian uppercase chars, based on this Unicode chart:
func isRussianUpper(text string) bool {
for _, r := range []rune(text) {
if r < '\u0410' || r > '\u042F' {
return false
}
}
return true
}
You can do any set of characters this way. Just modify the codes of characters you are interested in.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论