在我的Rails应用程序中,我需要验证一个字符串,该字符串在创建时不能将其第一个字符清空或由任何特殊字符组成。
例如:“file”和“%file”无效。你知道我应该使用什么样的正则表达式吗?
谢谢!
答案 0 :(得分:3)
以下正则表达式仅匹配字符串的第一个字母是字母,数字或“_”:
^\w
限制为字母或数字:
^[0-9a-zA-Z]
^
在正则表达式中具有特殊含义,当它位于字符类([...]
)之外时,它匹配字符串的开头(不实际匹配任何字符)。
如果你想匹配所有无效字符串,可以在字符类中放置一个^
来否定它,所以前面的表达式将是:
^[^\w]
或
^[^0-9a-zA-Z]
答案 1 :(得分:1)
交互式试用Ruby正则表达式的好地方是Rubular。我给出的链接显示了@Dave G给出的答案以及一些测试示例(乍一看似乎有效)。您可以扩展示例以进一步说服自己。
答案 2 :(得分:0)
正则表达式
^[^[:punct:][:space:]]+
应该做你想做的事。我不是100%确定Ruby提供的正则表达式和POSIX类支持,所以你的里程可能会有所不同。