web-dev-qa-db-fra.com

Python - vérifier si une chaîne contient des caractères cyrilliques

Comment vérifier si une chaîne contient des caractères cyrilliques?

Par exemple.

>>> has_cyrillic('Hello, world!')
False
>>> has_cyrillic('Привет, world!')
True
11
Max Malysh

regex prend en charge les propriétés Unicode, ainsi que quelques formes courtes.

>>> regex.search(r'\p{IsCyrillic}', 'Hello, world!')
>>> regex.search(r'\p{IsCyrillic}', 'Привет, world!')
<regex.Match object; span=(0, 1), match='П'>
>>> regex.search(r'\p{IsCyrillic}', 'Hello, wёrld!')
<regex.Match object; span=(8, 9), match='ё'>
4

Vous pouvez utiliser une expression régulière pour vérifier si une chaîne contient des caractères dans le а-я, А-Я gamme:

import re 

def has_cyrillic(text):
    return bool(re.search('[а-яА-Я]', text))

Alternativement, vous pouvez faire correspondre le toute la gamme de script cyrillique :

def has_cyrillic(text):
    return bool(re.search('[\u0400-\u04FF]', text))

Cela correspondra également aux lettres de l'alphabet cyrillique étendu (par exemple ё, Є, ў).

12
Max Malysh