ruby-on-rails - 获取数组中的字符串字符

标签 ruby-on-rails ruby regex

我在 ruby​​ 中有一个字符串,其初始字符为数字,最后一个字符始终为字母。一些示例是:2C、1P、45H、135D。

我想得到一个包含 2 个对象的数组,第一个是数字,第二个是字符。

Eg: for 2C, array would be [2, C]
    for 45H, array would be [45, H]
    for 135D, array would be [135, D]

我尝试了 my_string[/(\d+)([A-Z])$/].split(//, 1),但它给了我一个数组中的完整字符串。比如["2C"], ["45H"]

我是不是漏掉了什么?

最佳答案

我必须快速使用谷歌搜索来了解如何使用 Ruby 的拆分,但这是您想要的方式:

print '2C'.split(/(?<=\d)(?=[A-Z])/);
// ["2", "C"]

expression通过执行后视 ((?<=...)) 和前视 ((?=...)) 来工作。这意味着我们将匹配左边有一个数字而右边有一个字母的点。

关于ruby-on-rails - 获取数组中的字符串字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23569644/

相关文章:

ruby-on-rails - ruby 语法 : How to write "a = h[:v] if !h[:v].nil?"

java - System.out.print 删除 Matcher 类异常

ruby-on-rails - 在 Devise 重定向请求密码时维护 UTM 代码

ruby-on-rails - Heroku 上的 Facebook 登录出现魔法错误

sql - 如何使用表的别名在 ActiveRecord 中进行 SQL 查询?

regex - 正则表达式 [A-Za-z] 似乎不包括字母 W 和 w

regex - 为什么破折号会扰乱正则表达式搜索?

ruby-on-rails - 一起使用 Devise 和 has_secure_password 时出现 ArgumentError

Mysql2::在database.yml中使用env变量时出现错误 "Access denied for user"

Ruby:避免数组中的无限循环使每个数字加倍