Ruby中的REGEXP,用于检查单词是否包含多个字母

时间:2012-10-09 02:20:34

标签: ruby regex

我已经用if else和count解决了,但是如果你有一些解决方案来检查一个单词是否包含多个字符,我真的应该知道。

我想检查给定的字符串是否必须是a,b或c。如果是aaa,ab,cc,dd,它将失败。

就像我之前说的那样,我已经有了一个解决方案,但是使用if,我想在redy中使用regexp。

感谢。

3 个答案:

答案 0 :(得分:0)

这个只能匹配一个角色的技巧:

^[a-zA-Z]$

如果你不想匹配任何字符,只需使用:

^[a-zA-Z]?$

答案 1 :(得分:0)

def lengthGreaterThan1?(str)
  if str =~ /.{2,}|^$/
    return "yes"
  else
    return "no"
  end
end

假设您正在将字符串传递给此函数而没有单词的分隔符,它将仅匹配长度为1的字符串。

请注意/^$/匹配空字符串,字符串“a b”失败。

答案 2 :(得分:0)

要匹配'a','b'或'c',但没有别的,你可以使用这个正则表达式:

/^[abc]$/

要检查字符串是否为空或包含其他而不是单个“a”,“b”或“c”,这应该可以解决问题:

/^$|[^abc]|.{2,}/

根据您要允许的字符数量,您可能需要替换[abc][^abc]部分。例如,允许整个(小写)字母表需要以下字符类:[a-z][^a-z]