我想创建一个帮助我验证荷兰语和阿拉伯语名称的正则表达式 这些名称由三部分组成:
第一个:只有字母,最少两个最大长度为三个字符,这部分是一个选项;
第二:只有字母,最少两个最大长度为三个字符,这部分是一个选项;
第三:只有字母最少两个字符最长,这部分是强制性的;
有效示例
Kohl
Duerr
van Doe
de Hoofdoorp
van der Saar
Al Ahmazi
ibn
答案 0 :(得分:1)
我看到有三个选项:
([a-zA-Z]{2,3} ){0,2}([a-zA-Z]{2,})
这将匹配零到两个大写或小写的两个或三个字母的序列,后跟一个空格,后跟两个到无限大写或小写字母。请参阅此正则表达式的示例here。([a-z]{2,3} ){0,2}([a-z]{2,})
这与上一个相同,但要求"不区分大小写"旗。激活此标志的语言不同,但通常可以这样实现:/([a-z]{2,3} ){0,2}([a-z]{2,})/i
。请参阅此正则表达式的示例here。([A-Z][a-z]{1,2} |[a-z]{2,3} ){0,2}([A-Z][a-z]{1,}|[a-z]{2,})
这个正则表达式与其他正则表达式相似,但有一个主要区别:只有每个单词的第一个字母可以大写。否则,它会做同样的事情。请参阅此正则表达式的示例here。答案 1 :(得分:0)
这就是你所需要的:
/^(\w{2,3} )?(\w{2,3} )?(\w{2,3})$/
^
匹配该行的开头。\w
匹配一个字。{2,3}
表示2到3个字符之间的内容。?
使其成为可选项。$
匹配该行的结尾。