加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:02:26 所属栏目:百科 来源:网络整理
导读:我刚刚在本周早些时候开始修改 Ruby,而且我遇到了一些我不太懂得编码的东西.我正在将一个用Java编写的扫描器转换为Ruby进行类分配,我已经了解了这一节: if (Character.isLetter(lookAhead)){ return id();}if (Character.isDigit(lookAhead)){ return numbe
我刚刚在本周早些时候开始修改 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阅读更多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读