我想使用正则表达式来验证包含
的字符串[a-z0-9_.]
我使用/^[\w\s\-.]*$/
来验证字符串。但它允许第一个字符如(._)
答案 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
希望这有帮助。