Python-正则表达式西里尔文与拉丁语混合

Python-正则表达式西里尔文与拉丁语混合,python,regex,cyrillic,Python,Regex,Cyrillic,我试图从混合输入中提取西里尔字母,但无法按我想要的方式进行拆分。不涉及数字或特殊字符 input = "я я я я я w w w w w w\nф ф ф ф ф v v v v v v" output = re.split("![а-я]\s*", input) print(output) 我想去掉w和v字母,只打印俄文字母。在我的代码中,输入和输出是相同的,只是它们现在在一个列表中 如果需要从字符串中获取所有俄语字母,则需要使用(?i)[А-ЯЁ]regex(不要忘记Ё,因为[А-Я

我试图从混合输入中提取西里尔字母,但无法按我想要的方式进行拆分。不涉及数字或特殊字符

input = "я я я я я w w w w w w\nф ф ф ф ф v v v v v v"
output = re.split("![а-я]\s*", input)
print(output)

我想去掉
w
v
字母,只打印俄文字母。在我的代码中,输入和输出是相同的,只是它们现在在一个列表中

如果需要从字符串中获取所有俄语字母,则需要使用
(?i)[А-ЯЁ]
regex(不要忘记
Ё
,因为
[А-Я]
范围不包括它)并与
re.findall
一起使用

在Python 3中测试:

>>> import re
>>> input = "я я я я я w w w w w w\nф ф ф ф ф v v v v v v"
>>> output = re.findall(r'(?i)[А-ЯЁ]', input)
>>> print(output)
['я', 'я', 'я', 'я', 'я', 'ф', 'ф', 'ф', 'ф', 'ф']
要提取乌克兰字母,还需要将
ЇiҐ
添加到字符类:

 output = re.findall(r"(?i)[А-ЯЁЇІЄҐ]", input)

撇号也被认为是乌克兰字母,不知道是否要将其包含在图案中。

俄语还是西里尔语?如果列表中只需要俄语字母,请尝试
output=re.findall(r'(?i)[А-ЯЁ]',input)
。确切的预期产量是多少?顺便说一句,是Python 3吗?谢谢,这解决了我的问题!编辑:对不起,我需要匹配俄语和乌克兰语。这是混合输入。我还能用这个吗?对于乌克兰人,你需要更新它。你想把
也当作一个字母吗?我能把它同时用于乌克兰语和俄语吗?混合输入?is
[а-аА-аааЯЯїїієҐґ]
。因此,您需要将
ЇiҐ
添加到character类。不确定你想用
'
做什么。我不熟悉乌克兰语,所以我不确定
'
是做什么的,到目前为止,我已经选择从输入字符串中删除它,直到我知道为止。但是如果我后来意识到我需要它,我该如何将它添加到正则表达式中呢<代码>是的,有点像
r“(?i)[А-ЯЁЇҐ”]”
。看见