Не руби у isalpha?
Как Python? Я пытаюсь проверить, является ли каждый символ в строке буквенно-цифровой или нет?
3 ответов
для этого есть специальный класс символов:
char.match(/^[[:alpha:]]$/)
Это должно соответствовать одному алфавитному символу. Он также работает для UTF-8.
чтобы проверить всю строку:
string.match(/^[[:alpha:]]+$/)
имейте в виду, что это не учитывает пробелов и знаков препинания.
вы можете свернуть свой собственный :) заменить alnum
С alpha
Если вы хотите, чтобы соответствовать только буквы, без цифр.
class String
def alpha?
!!match(/^[[:alnum:]]+$/)
end
end
'asdf234'.alpha? # => true
'asdf@#$'.alpha? # => false
функция python работает только для символов ASCII; регулярное выражение [[:alnum]] будет делать такие вещи, как "tëst".Альфа? => истинный.
match/\w/
соответствует подчеркиванию, так что остается
def isalpha(str)
return false if str.empty?
!str.match(/[^A-Za-z]/)
end
для воспроизведения поведения Python.