web-dev-qa-db-ja.com

Python —文字列にキリル文字が含まれているかどうかを確認します

文字列にキリル文字が含まれているかどうかを確認する方法は?

例えば。

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

regex いくつかの短い形式とともにUnicodeプロパティをサポートします。

>>> 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='ё'>

正規表現を使用して、文字列にа-я, А-Яの範囲の文字が含まれているかどうかを確認できます。

import re 

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

または、 キリル文字全体 と一致させることもできます。

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

これは、拡張されたキリル文字のアルファベット(will、ё、ёなど)にも一致します。

12
Max Malysh