目前,我的正则表达式如下所示:/\A[a-zA-Z]{2,50}\z/i
现在我想添加:-
,whitespace
和ÄÖÜ
。
我试过rubular.com,但我是一个完整的正则表达式noob。
答案 0 :(得分:4)
您可能想要考虑使用Unicode properties and scripts。你可以把你的正则表达式写成
\A[\p{L}\s-]{2,50}\z
\p{L}
是一个Unicode属性,可以匹配任何语言的任何字母。
如果你想匹配ÄÖÜ你可能也想要ß,使用Unicode属性你不必考虑这些事情。
如果要稍微限制可能的字母,可以使用Unicode脚本,例如Latin
\A[\p{Latin}\s-]{2,50}\z
答案 1 :(得分:3)
答案 2 :(得分:1)
在正则表达式中,空格由速记字符类\s
表示
连字符/减号是一个特殊字符,因此必须用反斜杠\-
转义
Ä,Ö和Ü是普通字符,因此您可以按原样添加它们。
/\A[a-zA-Z\s\-ÄÖÜ]{2,50}\z/i