RegularExperssion包含文本部分并包含波兰语字母

时间:2017-08-07 09:48:02

标签: regex data-annotations

我想创建一个具有以下结构的正则表达式

text(length from 5 to 15)+text(length from 5 to 15)+text(length from 5 to 15)

文本的最后一部分不是强制性的。在每个部分中允许使用小写和大写。另外我想包括像{ą,ś,ź}这样的波兰语字母。 到目前为止,我已经创建了该表达式,但验证显示我输入错误。

[RegularExpression("^[A-Za-z]{5-15}+[A-Za-z]{5-15}+([A-Za-z]{5-15})?")]

2 个答案:

答案 0 :(得分:0)

这对你有用吗<​​/ p>

/(\p{L}{5,15}\+){2}(\p{L}{5,15})/

\ p {L} 匹配任何语言的任何类型的字母 {5-15}字面匹配字符{5-15}(区分大小写)
{2} 量词 - 匹配2次
+ 与“+”完全匹配

匹配字符串“ABCDE + ABCDE + abcde”

答案 1 :(得分:0)

由于您要在客户端服务器端进行验证,因此不能使用.NET \p{L}(任何Unicode字母)正则表达式构造。您需要在正则表达式中明确列出英文和波兰文字。

使用

^[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]{5,15}(?:\+[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]{5,15}){0,2}$

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • [a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]{5,15} - 5到15个英文和波兰文字
  • (?:\+[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]{5,15}){0,2} - 0到2({0,2})个序列:
    • \+ - 文字加符号(必须转义,或使用[+]以避免转义问题)
    • [a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]{5,15} - 5到15个英文和波兰文字
  • $ - 字符串结束。