/ / Rubyで同じ数字のグループをキャッチする正規表現-ルビー、正規表現、数字、数字

Rubyで同じ数字のグループをキャッチする正規表現 - ルビー、正規表現、数字、数字

Rubyの正規表現を使用して、文字列内のすべての同じ数字をキャッチすることは可能ですか?私は正規表現に精通していません。

つまり:正規表現 "1112234444" 生産する ["111", "22", "3", "4444"]

私は知っている、私は使用できる (d)(1*)、しかし、それは私に各試合で2つのグループのみを与えます。 ["1", "11"], ["2", "2"], ["3", -], ["4", "444"]

各試合で1つのグループを取得するにはどうすればよいですか?ありがとう。

回答:

回答№1は8

ここで、これを試してみましょう:

((d)2*)

回答№2のための5

この正規表現を使用することができます

((d)2*)

グループ1は必要な値をキャッチします


回答№3の場合は1

私の最初の簡単な答えは、コードの説明がないことで正当に批判されました。だからここに」、すべての点でより良い別のものです;-)

実行する要素が数字が必要で、手作業で簡単に列挙できます。したがって、「ゼロの実行、または1の実行、...または9の実行」を意味する読み取り可能な正規表現を作成します。そして、私たちは仕事に適切な方法を使用し、 文字列#スキャン

irb> "1112234444".scan(/0+|1+|2+|3+|4+|5+|6+|7+|8+|9+/)
=> ["111", "22", "3", "4444"]

記録のために、ここに私の最初の答えがあります:

irb> s = "1112234444"
=> "1112234444"
irb> rx = /(0+|1+|2+|3+|4+|5+|6+|7+|8+|9+)/
=> /(0+|1+|2+|3+|4+|5+|6+|7+|8+|9+)/
irb> s.split(rx).reject(&:empty?)
=> ["111", "22", "3", "4444"]