正则表达式验证字符串只有小写,第一个字符必须是一个字母

时间:2014-11-21 13:00:55

标签: ruby regex string

我想使用正则表达式来验证包含

的字符串
  • 必须只包含小写字母
  • 第一个字母必须是一封信。
  • 其余字符必须与正则表达式[a-z0-9_.]
  • 匹配

我使用/^[\w\s\-.]*$/来验证字符串。但它允许第一个字符如(._)

4 个答案:

答案 0 :(得分:6)

为什么不坚持你的要求?

  • 第一个字母必须是小写字母:[a-z]
  • 其余字符必须匹配:[a-z0-9_.]

- >你的正则表达式:/^[a-z][a-z0-9_.]*$/

答案 1 :(得分:2)

当您在方括号内放置句点时,它将被解释为文字句点。这就是为什么你的正则表达式不起作用的一个原因。你想要的是这个:

input =~ /^[a-z][a-z0-9_.]*$/

请注意,第一个字符由一个字符类处理,其余字符由另一个字符处理,这是规范所要求的。你不能用一个字符类把它拉下来。

答案 2 :(得分:0)

试试这个

 data = "helloworld_12_."
 data =~/^[a-z][a-z\d._]*$/
 puts $&

答案 3 :(得分:0)

这可能适合你。

/^[a-z][a-z\d._]*/

/                  - Start of Regex
^                  - The string will start with a lowercase letter
[a-z\d._]*         - The string will have zero or more lowercase letters, digits, etc.
/                  - End of Regex

希望这有帮助。