我正试图找到一个正则表达式,它匹配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}$