Проверка, являются ли две или более последовательные буквы заглавными - PullRequest
4 голосов
/ 03 мая 2011

Я пытаюсь создать в Ruby функцию, которая проверяет наличие в строке двух или более последовательных заглавных букв, например:

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

Ответы [ 3 ]

6 голосов
/ 03 мая 2011
"Hello There" =~ /[A-Z]{2}/
# => nil

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

Это вернет ноль, если у него нет букв, или индекс первого вхождения в противном случае (вы можете рассматривать их как true / false)

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

Или, если вы хотите вернуть явное значение true / false:

def has_two_uppercase_letters
  (str =~ /[A-Z]{2}/) != nil
end
4 голосов
/ 03 мая 2011
string =~ /[A-Z]{2,}/

Совпадение в наборе от "A" до "Z" 2 или более раз.

Вы можете проверить это на http://rubular.com/

3 голосов
/ 04 мая 2011

Поскольку Ruby не поддерживает \p{upper}, вы должны использовать

/\p{Lu}{2,}/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...