2014-11-21 47 views

回答

5

为什么你不坚持你的要求?

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

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

+2

正是。这里有一个现场演示:http://regex101.com/r/zY4nD8/2 – GolfWolf 2014-11-21 13:06:36

2

当你把一个时间段在方括号内,它被解释为文字时期。这是你的正则表达式不起作用的一个原因。你想要的是这样的:

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

注意,第一个字符是由另一个与一个字符类和剩余的字符来处理,这是规范要求的东西。你不能用一个字符类来拉它。

0

试试这个

data = "helloworld_12_." 
data =~/^[a-z][a-z\d._]*$/ 
puts $& 
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 

希望这会有所帮助。

+0

你需要两个锚; '“ab12._c %%%”[/^[a-z] [a-z \ d ._] * /] =>“ab12._c”'。 – 2014-11-21 18:33:22

相关问题