2

我想将以下字符串拆分为字母:

1234B

永远只有 4 个数字和一个字母。我只是想把它们分开。

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

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

4 回答 4

20

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

"1234A".scan(/\d+|\D+/)
# => ["1234", "A"]
于 2012-12-30T15:05:57.333 回答
8

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

str = "1234A"
digits,letter = str[0..3],str[4]
于 2012-12-30T14:38:01.503 回答
0

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

"1234A".scan(/.{1,4}/)
# => ["1234", "A"]
于 2012-12-30T19:58:48.473 回答
-1

另一个无正则表达式版本:

str = "1234A"

str.chars.to_a.last # => "A"
str.chop            # => "1234"
于 2012-12-30T20:24:32.217 回答