Python - 正则表达式西里尔字母与拉丁字母混合
Python - Regex cyrillic mixed with latin
我正在尝试从混合输入中提取西里尔字母,但无法按照我想要的方式拆分。不涉及数字或特殊字符。
input = "я я я я я w w w w w w\nф ф ф ф ф v v v v v v"
output = re.split("![а-я]\s*", input)
print(output)
我想去掉 w
和 v
字母,只打印俄语字母。使用我的代码,输入和输出是相同的,只是它们现在在列表中。
如果您需要从字符串中获取所有俄语字母,您需要使用 (?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)
['я', 'я', 'я', 'я', 'я', 'ф', 'ф', 'ф', 'ф', 'ф']
要同时提取乌克兰字母,您需要将 ЇІЄҐ
添加到字符 class:
output = re.findall(r"(?i)[А-ЯЁЇІЄҐ]", input)
撇号也被认为是乌克兰字母,不知道是否要将其包含在模式中。
我正在尝试从混合输入中提取西里尔字母,但无法按照我想要的方式拆分。不涉及数字或特殊字符。
input = "я я я я я w w w w w w\nф ф ф ф ф v v v v v v"
output = re.split("![а-я]\s*", input)
print(output)
我想去掉 w
和 v
字母,只打印俄语字母。使用我的代码,输入和输出是相同的,只是它们现在在列表中。
如果您需要从字符串中获取所有俄语字母,您需要使用 (?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)
['я', 'я', 'я', 'я', 'я', 'ф', 'ф', 'ф', 'ф', 'ф']
要同时提取乌克兰字母,您需要将 ЇІЄҐ
添加到字符 class:
output = re.findall(r"(?i)[А-ЯЁЇІЄҐ]", input)
撇号也被认为是乌克兰字母,不知道是否要将其包含在模式中。