仅含小写字母的字符串验证正则表达式,第一个字符必须是字母。

3

我想使用正则表达式验证包含以下内容的字符串:

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

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

4个回答

6

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

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

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


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

希望这能有所帮助。

你需要两个锚点;"ab12._c%%%"[/^[a-z][a-z\d._]*/] => "ab12._c" - Cary Swoveland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接