C#でハイフンを含むことができるキリル文字の3つの単語にマッチする正規表現を出そうとしています。ハイフンを含むことができるキリル文字の3つの単語に一致する正規表現
マッチ: "АБАБА"、 "АБАБАБ"、 "АБ-ААБАБ" など
と一致していません:^[\ u0400- \ u04FF] + $
: "АБАБ"、 "АБАБ"、 "АБАБ-" などは、これまでのところ、私は唯一のキリル文字のための正規表現を持っています
C#でハイフンを含むことができるキリル文字の3つの単語にマッチする正規表現を出そうとしています。ハイフンを含むことができるキリル文字の3つの単語に一致する正規表現
マッチ: "АБАБА"、 "АБАБАБ"、 "АБ-ААБАБ" など
と一致していません:^[\ u0400- \ u04FF] + $
: "АБАБ"、 "АБАБ"、 "АБАБ-" などは、これまでのところ、私は唯一のキリル文字のための正規表現を持っています
まず、ルールに手の込んだ:
- Wordは文字で、文字、端から開始する必要があり
ハイフンの任意の数を含めることができます- 言葉。各ハイフンは、文字で囲む必要があります(または ぶら下がり、はを開始ハイフンが許可されていません倍増)
ので単一の単語のために、私たちは
[\u0400-\u04FF](-?[\u0400-\u04FF]+)*
いくつかを持っています例:
АБ // correct
АБ-А-АБ // correct (with hyphens)
Z // incorrect: non cyrillic letter
-А // incorrect: starting hyphen
А- // incorrect: dangling hyphen
А--Б // incorrect: double hyphen
は今、言葉のために:私たちはにより、任意の数の空白\s
のを分離正確に3言葉たい:
^[\u0400-\u04FF](-?[\u0400-\u04FF]+)*(\s+[\u0400-\u04FF](-?[\u0400-\u04FF]+)*){2}$
ありがとうございました!ところで、単語の間に正確に1つの空白が必要な場合はどうなりますか? – Yulian
@Yulian:*ちょうど1つの*スペースの場合は、 '\ s +'を '\ s'に変更してください –
をので、何がproblem..useです: - '[\ u0400- \ u04FF-] + ' – rock321987