Python - 正则表达式西里尔字母与拉丁字母混合

标签 python regex cyrillic

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

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

我想去掉 wv 字母,只打印俄语字母。对于我的代码,输入和输出是相同的,只是它们现在位于列表中。

最佳答案

如果您需要从字符串中获取所有俄语字母,则需要使用 (?i)[А-ЯЁ] 正则表达式(不要忘记 Ё因为 [А-Я] 范围不包括它)并将其与 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)
['я', 'я', 'я', 'я', 'я', 'ф', 'ф', 'ф', 'ф', 'ф']

要提取乌克兰语字母,您需要将 ЇІЄй 添加到字符类中:

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

撇号也被视为乌克兰字母,不知道是否要将其包含到模式中。

关于Python - 正则表达式西里尔字母与拉丁字母混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43116514/

相关文章:

javascript - 从扩展对象javascript创建 key 对对象

python - 使用 Python 提取字符串中字符前的数字

c++ - QMediaPlayer 在 Windows 上使用西里尔文错误解析 url

python - GCP Dataproc - 西里尔字符在 python 中显示不正确

PHP MySQL 搜索西里尔字母

python - 预测事件顺序的机器学习算法?

python - 输入可以存在于 Python 中定义的函数中吗?

python - 网格几何管理器不会将框架置于窗口中间

python - 从 HTML 中提取脚本标签内的字符串

python - python中的常量字符串加正则表达式