Ruby:如何找出字符是字母还是数字?

前端之家收集整理的这篇文章主要介绍了Ruby:如何找出字符是字母还是数字?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚在本周早些时候开始修改 Ruby,而且我遇到了一些我不太懂得编码的东西.我正在将一个用Java编写的扫描器转换为Ruby进行类分配,我已经了解了这一节:
if (Character.isLetter(lookAhead))
{      
    return id();
}

if (Character.isDigit(lookAhead))
{
    return number();
}

lookAhead是从字符串中挑出的单个字符(每次循环遍历一个空格),这两个方法确定它是一个字符还是一个数字,返回相应的令牌类型.我没有能够找出一个与Character.isLetter()和Character.isDigit()等效的Ruby.

解决方法

使用与字母&数字:
def letter?(lookAhead)
  lookAhead =~ /[[:alpha:]]/
end

def numeric?(lookAhead)
  lookAhead =~ /[[:digit:]]/
end

这些称为POSIX括号表达式,它们的优点是给定类别下的unicode字符将匹配.例如:

'ñ' =~ /[A-Za-z]/    #=> nil
'ñ' =~ /\w/          #=> nil
'ñ' =~ /[[:alpha:]]/   #=> 0

您可以在Ruby’s docs for regular expressions阅读更多.

猜你在找的Ruby相关文章