获取数组中的字符串字符

时间:2014-05-09 16:28:25

标签: 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”]

我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:4)

我不得不做一些快速的谷歌搜索,看看如何使用Ruby的分裂,但这是你想要的方式:

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

expression通过做后卫((?<=...))和前瞻((?=...))来发挥作用。这意味着我们将匹配左侧有数字的点和右侧的字母。

答案 1 :(得分:1)

您可以使用scan

'150D'.scan(/\d+|\w/)
# => ["150", "D"]