web-dev-qa-db-ja.com

キリル文字を正規表現と一致させる方法

フランス語とロシア語のキリル文字を正規表現と照合するにはどうすればよいですか?数字だけや特殊文字は使用せず、アルファ文字のみを使用します。今私は持っています

[A-Za-z]

47
Greg Finzer

正規表現のフレーバーに依存します。 Unicode文字クラス(たとえば.NETなど)をサポートしている場合、\p{L}は、文字(任意の文字セット)に一致します。

23
Tim Pietzcker

regexフレーバーがUnicodeブロック[\p{IsCyrillic}])をサポートしている場合、ロシア語(キリル文字))

[\p{IsCyrillic}] or [\p{Cyrillic}]

そうでなければ、使用してみてください:

[U+0400–U+04FF]

PHPの場合:

[\x{0400}-\x{04FF}]

説明:

[\p{IsCyrillic}]

Match a character from the Unicode block “Cyrillic” (U+0400–U+04FF) «[\p{IsCyrillic}]»

注:

Unicode文字リストと [U+0400–U+04FF] の数値HTMLエンティティ。

37
Pedro Lobito

モダンPHPバージョン-ちょうど:

preg_match("/^[\p{L}]+$/u");

ユニコードをサポートするためにフラグを忘れないでください!

キリル文字を通常の(英語)アルファベットと一致させる正規表現:

^[A-Za-z.!@?#"$%&:;() *\+,\/;\-=[\\\]\^_{|}<>\u0400-\u04FF]*$

特殊文字、キリル文字、英語の文字に一致します。

4
Dipti Ghumbre

これは私のために働いた

[a-z\u0400-\u04FF]
3
lili.b

さまざまな正規表現の方言では[:alpha:]現在のロケールの任意の英数字。 (それを文字クラスに入れる必要があるかもしれません、例えば[[:alpha:]]。)

2
Roger Pate

Elixirを使用する場合:

String.match?(string, ~r/^\p{Cyrillic}*$/u)

Unicodeサポートのためにuフラグを追加する必要があります。

1
Marvin Rabe

ロシア語のキリル文字のみを照合するには、次を使用します。

[\u0401\u0451\u0410-\u044f]

次と同等です:

[ЁёА-я]

どこ Аはラテン語ではなくキリル文字です。 (同じように見えても、コードは異なります)

\p{IsCyrillic}\p{Cyrillic}[\u0400-\u04FF]他の人が提案したものは一致します キリル文字のすべてのバリアント 、ロシア語だけでなく

0
CITBL