首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用西里尔字母的正则表达式?

使用西里尔字母的正则表达式?
EN

Stack Overflow用户
提问于 2013-02-16 10:17:23
回答 3查看 12.8K关注 0票数 6

我目前正在编写一些验证,将验证输入的数据。我正在使用正则表达式来实现这一点,使用C#。

代码语言:javascript
复制
Password = @"(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,18})$"

Validate Alpha Numeric = [^a-zA-Z0-9ñÑáÁéÉíÍóÓúÚüÜ¡¿{0}]

上面的方法在拉丁字母上工作得很好,但是我如何将其扩展到使用西里尔字母呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-16 10:25:01

使用正则表达式覆盖字符范围的基本方法是构造一个[A-Za-z]形式的表达式,其中A是范围的第一个字母,Z是范围的最后一个字母。

问题是,没有“西里尔字母表”这样的东西:根据语言的不同,字母表略有不同。如果您想要介绍俄语版本的西里尔文,请使用[А-Яа-я]。您可以使用不同的范围,例如,对于塞尔维亚语,因为他们的西里尔文的最后一个字母是Ш,而不是Я

另一种方法是逐个列出所有字符。只需找到要放入regexp中的字母表的权威引用,并将其所有字符放入一对方括号中:

代码语言:javascript
复制
[АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя]
票数 9
EN

Stack Overflow用户

发布于 2013-02-16 10:37:05

如果您需要允许特定语言或特定类型的字符,则可以使用character classes

代码语言:javascript
复制
@"\p{IsCyrillic}+" // Cyrillic letters
@"[\p{Ll}\p{Lt}]+" // any upper/lower case letters in any language

在您的例子中,也许“不是一个空格”就足够了:@"[^\s]+"或者"word字符(包括数字和下划线)- @"\w+"

票数 9
EN

Stack Overflow用户

发布于 2013-02-16 10:22:35

代码语言:javascript
复制
Password = @"(?!^[0-9]*$)(?!^[А-Яа-я]*$)^([А-Яа-я0-9]{6,18})$"

Validate Alpha Numeric = [^а-яА-Я0-9ñÑáÁéÉíÍóÓúÚüÜ¡¿{0}]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14906232

复制
相关文章

相似问题

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