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

2024-01-16

本周早些时候我刚刚开始摆弄 Ruby,但遇到了一些我不太知道如何编码的问题。我正在将用 Java 编写的扫描器转换为 Ruby 以进行类作业,我已经开始讨论这一部分:

if (Character.isLetter(lookAhead))
{      
    return id();
}

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

lookAhead是从字符串中挑选出来的单个字符(每次循环时移动一个空格),这两个方法确定它是字符还是数字,并返回适当的标记类型。我还没能找到一个 Ruby 相当于Character.isLetter() and Character.isDigit().


使用匹配字母和数字的正则表达式:

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 的正则表达式文档 https://ruby-doc.org/core/Regexp.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby:如何判断一个字符是字母还是数字? 的相关文章

  • 如何使用JavaScript估算字符串的磁盘大小?

    我需要尝试估计DISKJavaScript 中文本字符串 可以是原始文本或图像 音频 等的 Base64 编码字符串 的大小 我不知道如何估计这个 当谷歌搜索时我唯一能找到的是 length所以我想 StackOverflow 上也许有人知
  • 是否有 java.lang.String 的内存高效替代品?

    看完之后这篇旧文章 http www javaworld com javaworld javatips jw javatip130 html page 2测量几种对象类型的内存消耗 我惊讶地发现有多少内存String在Java中的使用 le
  • 迭代带有小胡子的数组

    如何获取迭代中当前元素的引用 my array p what goes here p my array 我希望我只是忽略了显而易见的事情 根据规范的变更日志 https github com mustache spec blob maste
  • rake cucumber 和 rake spec 始终使用“开发”环境

    我运行 Cucumber 和 RSpec 测试的 rake 任务始终使用我的development环境 以下是相关的配置文件 RAILS ROOT config environments cucumber rb Edit at your o
  • 根据列中的部分字符串匹配选择数据框行

    我想根据列中字符串的部分匹配从数据框中选择行 例如列 x 包含字符串 hsa 使用sqldf if它有一个like语法 我会做类似的事情 select from lt gt where x like hsa 很遗憾 sqldf不支持该语法
  • 查询,无法选择列数

    Tag joins quote tags group quote tags tag id order count desc select count tags id AS count tags id tags name Build quer
  • 使用 scanf 读入 std::string

    正如标题所说 我很好奇是否有一种方法可以用 scanf 读取 C 字符串 我知道我可以读取每个字符并将其插入到应得的字符串中 但我想要类似的东西 string a scanf SOMETHING a gets 也不起作用 提前致谢 这可以工
  • 为不带引号的函数获取字符串参数

    我有一个函数 用于从 URL 下载文件并将其写入磁盘 并施加特定的文件扩展名 目前 它看起来像这样 import requests import os def getpml url filename psc requests get url
  • 从哈希中删除 nil 值

    我希望从哈希中删除具有nil value article是一个存储每篇文章的类 并且attributes方法将文章存储为散列 预期结果 articles results author null title Former bar manage
  • 可以通过 url 发送 JSON 吗?

    我有一个 ruby 哈希 其中键是 url 值是整数 我将哈希值转换为 JSON 我想知道是否能够通过 AJAX 请求在 url 内发送 JSON 然后从 params 哈希值中提取该 JSON 另外 我将把 JSON 化的 ruby 哈希
  • 错误“无法将‘动态’类型的值分配给‘字符串’类型的变量。”在 Dart 2.2 中

    自上次 dart 更新 2 2 我收到这个错误 dynamic 类型的值不能分配给 dynamic 类型的变量 细绳 这对我来说没有多大意义 代码非常简单 class EmployeeMirror EmployeeMirror this i
  • Ruby 2 升级破坏了 Nokogiri 和/或 open-uri 编码?

    将 Rails3 2 Ruby 1 9 应用程序升级到 Rails3 2 Ruby 2 1 2 时 我有一个谜团需要解决 Nokogiri 似乎崩溃了 因为它使用 open uri 改变了它的行为 没有改变 gem 版本 只是改变 ruby
  • Rspec:期望与期望与块 - 有什么区别?

    刚刚学习 rspec 语法 我注意到这段代码有效 context given a bad list of players do let bad players it fails to create given a bad player li
  • 如何读取rack请求中的POST数据

    当我运行curl命令时 curl v H Content type application json X POST d name abc id 12 subject my subject http localhost 9292 要将包含数据
  • 随机显示 NoMethodError:未定义的方法“空?”对于 0:Fixnum

    它在我的本地计算机上运行良好 但使用 Puma Web 服务器在 Heroku 上的rails admin 中出现以下错误 这是我使用 enumerize 的方式 enumerize date type in last date 0 beg
  • 如何删除字符串中某个字符之后的所有内容?

    如何删除Python中字符串的某个字符之后的所有内容 例如 我有一个包含文件路径和一些额外字符的字符串 如何删除 zip 后的所有内容 我试过了rsplit and split 但在删除多余字符时都不包含 zip 有什么建议么 只需取出拆分
  • Base36 编码字符串?

    我一直在网上查找 但找不到解决此问题的方法 在 Python Ruby 或 Java 中 如何对以下字符串进行 Base 36 编码 nOrG9Eh0uyeilM8Nnu5pTywj3935kW 5 Ruby 以 36 为基数 s unpa
  • 将字符串解析为结构变量

    我试图将字符串解析为其中包含不同变量的结构向量 这是我到目前为止所拥有的 但似乎不起作用 struct client string PhoneNumber string FirstName string LastName string Ag
  • Ruby openssl 文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有 Ruby 的在线文档openssl图书馆 我能找到的只是博客文章和第三方文章 而 rdoc 本
  • Rust 枚举中 str/String 值的最佳实践是什么?

    我有一个非常赏心悦目的东西 但我担心它的含义 derive Eq PartialEq Debug pub enum SmtpHost DOMAIN String IPV4 Ipv4Addr IPV6 Ipv6Addr UNKNOWN lab

随机推荐