フランス語とロシア語のキリル文字を正規表現と照合するにはどうすればよいですか?数字だけや特殊文字は使用せず、アルファ文字のみを使用します。今私は持っています
[A-Za-z]
正規表現のフレーバーに依存します。 Unicode文字クラス(たとえば.NETなど)をサポートしている場合、\p{L}
は、文字(任意の文字セット)に一致します。
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エンティティ。
モダンPHPバージョン-ちょうど:
preg_match("/^[\p{L}]+$/u");
ユニコードをサポートするためにフラグを忘れないでください!
キリル文字を通常の(英語)アルファベットと一致させる正規表現:
^[A-Za-z.!@?#"$%&:;() *\+,\/;\-=[\\\]\^_{|}<>\u0400-\u04FF]*$
特殊文字、キリル文字、英語の文字に一致します。
これは私のために働いた
[a-z\u0400-\u04FF]
さまざまな正規表現の方言では[:alpha:]
現在のロケールの任意の英数字。 (それを文字クラスに入れる必要があるかもしれません、例えば[[:alpha:]]
。)
Elixirを使用する場合:
String.match?(string, ~r/^\p{Cyrillic}*$/u)
Unicodeサポートのためにu
フラグを追加する必要があります。
ロシア語のキリル文字のみを照合するには、次を使用します。
[\u0401\u0451\u0410-\u044f]
次と同等です:
[ЁёА-я]
どこ А
はラテン語ではなくキリル文字です。 (同じように見えても、コードは異なります)
\p{IsCyrillic}
、\p{Cyrillic}
、[\u0400-\u04FF]
他の人が提案したものは一致します キリル文字のすべてのバリアント 、ロシア語だけでなく