西里尔字母的正则表达式

本文关键字:正则表达式 | 更新日期: 2023-09-27 17:59:31

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

Password = @"(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,18})$"
Validate Alpha Numeric = [^a-zA-Z0-9ñÑáÁéÉíÍóÓúÚüÜ¡¿{0}]

以上内容适用于拉丁字母表,但我如何将其扩展到使用西里尔字母表?

西里尔字母的正则表达式

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

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

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

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

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

@"'p{IsCyrillic}+" // Cyrillic letters
@"['p{Ll}'p{Lt}]+" // any upper/lower case letters in any language

在您的情况下,可能"没有空白"就足够了:@"[^'s]+"或"单词字符(包括数字和下划线)-@"'w+"

Password = @"(?!^[0-9]*$)(?!^[А-Яа-я]*$)^([А-Яа-я0-9]{6,18})$"
Validate Alpha Numeric = [^а-яА-Я0-9ñÑáÁéÉíÍóÓúÚüÜ¡¿{0}]