Ruby:如何判断一个字符是字母还是数字?

标签 ruby string character digits

本周早些时候,我刚刚开始研究 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.match?(/[[:alpha:]]/)
end

def numeric?(lookAhead)
  lookAhead.match?(/[[:digit:]]/)
end

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

'ñ'.match?(/[A-Za-z]/)     #=> false
'ñ'.match?(/\w/)           #=> false
'ñ'.match?(/[[:alpha:]]/)  #=> true

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

关于Ruby:如何判断一个字符是字母还是数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14551256/

相关文章:

html - 错误 : "Template is missing"

javascript - 缩短长字符串

string - 在 Swift 中计算不同的字符

c - 在 C 中将整数的最后两位作为字符串返回

c - 如何使用 C 中的字符数组进行函数调用

Ruby GUI 绘图包?

ruby - 我可以以编程方式将 Webm 文件中的音频插入另一个 Webm 文件吗?

ruby-on-rails - 我怎样才能让 bundler 不提示 sys-proctable gem?

Java-如何从字符串列表创建哈希ID

javascript - 将字符串转换为整数并忽略冒号