检查两个或多个连续字母是否为大写

时间:2011-05-03 17:16:41

标签: ruby regex

我正在尝试在Ruby中创建一个函数来检查一个字符串是否有两个或多个连续的大写字母,例如:

"Hello There"  # => returns false
"Hello ThERe"  # => returns true

3 个答案:

答案 0 :(得分:6)

"Hello There" =~ /[A-Z]{2}/
# => nil

"Hello ThERe" =~ /[A-Z]{2}/
# => 8

如果它没有字母,则返回nil,否则返回第一次出现的索引(可以将它们视为真/假)

def has_two_uppercase_letters
  str =~ /[A-Z]{2}/
end

或者如果你想返回一个明确的真/假:

def has_two_uppercase_letters
  (str =~ /[A-Z]{2}/) != nil
end

答案 1 :(得分:4)

string =~ /[A-Z]{2,}/

在“A”到“Z”的集合中匹配2次或更多次。

您可以在http://rubular.com/

上对此进行测试

答案 2 :(得分:3)

因为Ruby不支持\p{upper},所以必须使用

/\p{Lu}{2,}/
相关问题