Regex匹配cyrillic中可能包含连字符的三个单词



我正试图找到一个正则表达式,它匹配cyrillic中的3个单词,这些单词在C#中也可以包含连字符。

匹配:"АБА",

不匹配

到目前为止,我只有一个适用于西里尔字母的正则表达式:^[\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:分隔

^[u0400-u04FF](-?[u0400-u04FF]+)*(s+[u0400-u04FF](-?[u0400-u04FF]+)*){2}$

最新更新