Ruby 不';你没有艾萨帕吗?
像蟒蛇?我试图检查字符串中的每个字符是否为字母数字?有一个特殊的字符类:Ruby 不';你没有艾萨帕吗?,ruby,Ruby,像蟒蛇?我试图检查字符串中的每个字符是否为字母数字?有一个特殊的字符类: char.match(/^[[:alpha:]]$/) 应该匹配一个字母字符。它似乎也适用于UTF-8 要测试整个字符串,请执行以下操作: string.match(/^[[:alpha:]]+$/) 请记住,这不包括空格或标点符号。您可以自己滚动:)如果只想匹配字母而不匹配数字,请将alnum替换为alpha class String def alpha? !!match(/^[[:alnum:]]+$/
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”.alpha?=>对。
match/\w/
匹配下划线,因此
def isalpha(str)
return false if str.empty?
!str.match(/[^A-Za-z]/)
end
复制Python行为。如果你记不住正则表达式(像我一样!),这里有一种不用正则表达式的方法:
def alpha?(字符)
char.upcase!=夏·唐卡斯
结束
对于字母以外的任何其他字符,
#upcase
和#downcase
起作用,但不起作用,因此我们可以断言字符的upcase和downccase值不相等,以确定它是字母 我试着用谷歌搜索,但什么也没找到。所以我只是想确认一下。你可以用正则表达式。谢谢。我想在Ruby中,你必须使用正则表达式。如果你喜欢Sergio建议的那种风格,你可以添加一个String#isalpha?
方法。我不知道这是怎样的正确答案。[[:alpha:]代表字母表,而OP要求检查字母数字字符。或者更像ruby风格:#alpha?
@d11wtq:绝对如此。谢谢:)!self.match(/[^[:alnum:]/)
更简单。@steenslag:这是有争议的:)在字符串
实例的上下文中,self
是无关的。pythonisalpha
不支持带数字的字符串对于空字符串,它返回true
,但应该返回false
。