2

次の文字列を文字に分割したいと思います。

1234B

常に 4 桁と 1 文字しかありません。私はそれらを分割したいだけです。

これが私の試みです。私は正しい方法を持っており、正規表現は数字と一致すると思いますが、私の構文や正規表現が私が解決しようとしている問題に関連しているとは思いません。

"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 に答える