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