首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配西里尔字母中可能包含连字符的三个单词的Regex

匹配西里尔字母中可能包含连字符的三个单词的Regex
EN

Stack Overflow用户
提问于 2016-06-01 14:46:17
回答 1查看 112关注 0票数 2

我试图想出一个正则表达式,它匹配西里尔字母中的3个单词,可以在C#中包含连字符。

匹配:“АБАБА”,“А-Б”,“А-Б-ААБАБ”等。

不匹配:“АБАБ”,“А-БАБ”,“АБАБ-”等等。

到目前为止,我只对西里尔字母有一个正则表达式:^\u0400-\u04FF+$

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-01 15:14:27

首先,让我们详细说明一下规则

  • 单词必须从字母开始,逐个字母结束。
  • 单词可以包含任意数量的连字符;每个连字符必须被字母包围(不允许开始、悬挂或双连字符)。

因此,对于我们仅有的一个词

代码语言:javascript
复制
  [\u0400-\u04FF](-?[\u0400-\u04FF]+)*

一些例子:

代码语言:javascript
复制
  АБ      // correct
  АБ-А-АБ // correct (with hyphens)
  Z       // incorrect: non cyrillic letter
  -А      // incorrect: starting hyphen
  А-      // incorrect: dangling hyphen
  А--Б    // incorrect: double hyphen

现在,对于单词:我们希望有三个单词被任意数量的空格\s隔开

代码语言:javascript
复制
  ^[\u0400-\u04FF](-?[\u0400-\u04FF]+)*(\s+[\u0400-\u04FF](-?[\u0400-\u04FF]+)*){2}$
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37571976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档