带有文本部分并包括波兰语字母的 RegularExperssion

RegularExperssion with text sections and including Polish letters

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

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})?")]

这个对你有用吗

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

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

这匹配字符串 "ABCDE+ABCDE+abcde"

由于您在客户端 服务器端都进行了验证,因此您不能使用 .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 个英语和波兰语字母
  • $ - 字符串结尾。