2011-02-11 202 views
0

在我的Rails应用程序中我需要验证一个字符串,该字符串在创建时不能有其第一个字符为空或由任何特殊字符组成。字符串第一个字符的正则表达式

例如:“文件”和“%文件”无效。你知道我应该使用哪种正则表达式吗?

谢谢!

回答

3

下面的正则表达式将只匹配“_”:

^\w 

要限制只能是字母或数字:

^[0-9a-zA-Z] 

^在正则表达式中具有特殊含义,当它位于字符类([...])之外时,它与字符串的开始匹配(没有实际匹配任何字符)。

如果你想匹配所有无效的字符串,你可以放置一个^字符类来否定它的里面,所以以前的表述应该是:

^[^\w] 

^[^0-9a-zA-Z] 
+0

另外,`[^ \ w]`等同于`\ W`。 – 2011-02-11 20:07:45

0

正则表达式

^[^[:punct:][:space:]]+ 

应该做你想做的。对于Ruby提供的正则表达式和POSIX类支持,我不是100%确定的,所以你的里程可能会有所不同。如果字符串的第一个字母是字母,数字或

1

好交互式地尝试Ruby正则表达式的地方是Rubular。我给出的链接显示了@Dave G给出的答案以及一些测试示例(乍一看似乎起作用)。你可以扩展这些例子来进一步说服你自己。