Ruby分为数字和字母

时间:2012-12-30 14:35:12

标签: ruby regex

我想在字母上拆分以下字符串:

1234B

总是只有4位数字和1个字母。我只想把它们分开。

这是我的尝试,我认为我的方法正确,正则表达式匹配数字,但我不认为我的语法或我的正则表达式与我试图解决的问题相关。

"1234A".split(/^\d{4}/)

4 个答案:

答案 0 :(得分:16)

你想要的并不清楚,但这种情况的一般解决方案是:

"1234A".scan(/\d+|\D+/)
# => ["1234", "A"]

答案 1 :(得分:8)

如果总是 4位数和1个字母,则无需使用正则表达式来分割字符串。就这样做:

str = "1234A"
digits,letter = str[0..3],str[4]

答案 2 :(得分:0)

纯粹从将任何字符串分成4组的角度来看待它:

"1234A".scan(/.{1,4}/)
# => ["1234", "A"]

答案 3 :(得分:-1)

另一个no-regex版本:

str = "1234A"

str.chars.to_a.last # => "A"
str.chop            # => "1234"