Ruby / Rails:我如何在我的正则表达式中允许空格,短划线和ÄÖÜ?

时间:2014-05-05 09:08:23

标签: ruby regex

目前,我的正则表达式如下所示:/\A[a-zA-Z]{2,50}\z/i

现在我想添加:-whitespaceÄÖÜ

我试过rubular.com,但我是一个完整的正则表达式noob。

3 个答案:

答案 0 :(得分:4)

您可能想要考虑使用Unicode properties and scripts。你可以把你的正则表达式写成

\A[\p{L}\s-]{2,50}\z

here on Rubular

\p{L}是一个Unicode属性,可以匹配任何语言的任何字母。

如果你想匹配ÄÖÜ你可能也想要ß,使用Unicode属性你不必考虑这些事情。

如果要稍微限制可能的字母,可以使用Unicode脚本,例如Latin

\A[\p{Latin}\s-]{2,50}\z

See it on Rubular

答案 1 :(得分:3)

只需将其添加到正则表达式中,如下所示:

/\A[a-zA-Z\-\sÄÖÜ]{2,50}\z/i

DEMO

regex是一种非常宝贵的跨语言工具,您越早学习,就会越好。我建议加入learn it

答案 2 :(得分:1)

在正则表达式中,空格由速记字符类\s表示 连字符/减号是一个特殊字符,因此必须用反斜杠\-转义 Ä,Ö和Ü是普通字符,因此您可以按原样添加它们。

/\A[a-zA-Z\s\-ÄÖÜ]{2,50}\z/i