如何在Ruby 1.9.2中编写一个正则表达式来确定字符串是否符合此条件:
-
字符答案 0 :(得分:4)
/\A[a-z0-9-]*[a-z][a-z0-9-]*\z/i
就像
答案 1 :(得分:1)
我认为这两个会对您有所帮助:/\A[a-z0-9\-]{1,}\z/i
和/[a-z]{1,}/i
。第一个检查前两个规则,第二个检查最后一个条件。
答案 2 :(得分:1)
没有正则表达式:
str.count("a-zA-Z") > 0 && str.count("^a-zA-Z0-9-") == 0
答案 3 :(得分:0)
您可以查看this教程,了解如何在ruby中使用正则表达式。关于您的需求,您可以使用以下内容:
^[A-Za-z0-9\-]+$
^
将指示正则表达式引擎从字符串的最开头开始匹配。
[..]
将指示正则表达式引擎匹配它们包含的任何一个字符。
A-Z表示任何大写字母,a-z表示任何小写字母,0-9表示任何数字。
\-
将指示正则表达式引擎与-
匹配。 \
在其前面使用,因为正则表达式中的-
是一个特殊符号,因此需要进行转义
$
将指示正则表达式引擎在该行的末尾停止匹配。
+
指示正则表达式引擎匹配方括号中包含的内容一次或多次。
您还可以使用\i
标志使搜索大小写不敏感,因此正则表达式可能会变成这样:
^[a-z0-9\-]+/i$