https://bugs.ruby-lang.org/https://bugs.ruby-lang.org/favicon.ico?17113305112019-07-27T05:46:29ZRuby Issue Tracking SystemRuby master - Bug #16024: String#split with block. cannot use Regexp in the block.https://bugs.ruby-lang.org/issues/16024?journal_id=801292019-07-27T05:46:29Zqitar888 (Chia-sheng Chen)
<ul></ul><p>tksotn (TAKASHI OOTANI) wrote:</p>
<blockquote>
<p>$ ruby -v<br>
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]<br>
$ cat foo<br>
str = "aaa,bbb;ccc,ddd"<br>
n=0<br>
str.split(/[;,]/) do |word|<br>
n+=1<br>
p [n,word.gsub(/\w/,"A")]<br>
end<br>
$ ruby foo<br>
[1, "AAA"]<br>
[2, "\u0000AAA,AAA;AAA,AAA"]<br>
$</p>
<a name="expected-output"></a>
<h3 >expected output:<a href="#expected-output" class="wiki-anchor">¶</a></h3>
<p>[1, "AAA"]<br>
[2, "AAA"]<br>
[3, "AAA"]<br>
[4, "AAA"]</p>
<p>$ cat bar<br>
str = "aaa\nb\nccc\nddd\n"<br>
n=0<br>
str.split(/\n/) do |line|<br>
n+=1<br>
p [n,line.gsub(/.*/,"A")]<br>
end<br>
$ ruby bar<br>
=> infinite loop</p>
</blockquote>
<p>Hi,</p>
<p>I tried with <code>str.split().each &block</code> and things work just fine for me.</p> Ruby master - Bug #16024: String#split with block. cannot use Regexp in the block.https://bugs.ruby-lang.org/issues/16024?journal_id=801372019-07-27T13:16:51Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li></ul><p>Applied in changeset <a class="changeset" title="Occupy match data * string.c (rb_str_split_m): occupy match data not to be modified during yie..." href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/f1b76ea63ce40670071a857f408a4747c571f1e9">git|f1b76ea63ce40670071a857f408a4747c571f1e9</a>.</p>
<hr>
<p>Occupy match data</p>
<ul>
<li>string.c (rb_str_split_m): occupy match data not to be modified<br>
during yielding the block. [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: String#split with block. cannot use Regexp in the block. (Closed)" href="https://bugs.ruby-lang.org/issues/16024">#16024</a>]</li>
</ul> Ruby master - Bug #16024: String#split with block. cannot use Regexp in the block.https://bugs.ruby-lang.org/issues/16024?journal_id=801382019-07-27T13:21:25Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul><li><strong>Backport</strong> changed from <i>2.5: UNKNOWN, 2.6: UNKNOWN</i> to <i>2.5: DONTNEED, 2.6: REQUIRED</i></li></ul> Ruby master - Bug #16024: String#split with block. cannot use Regexp in the block.https://bugs.ruby-lang.org/issues/16024?journal_id=801392019-07-27T13:26:02Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul><li><strong>Description</strong> updated (<a title="View differences" href="/journals/80139/diff?detail_id=53881">diff</a>)</li></ul> Ruby master - Bug #16024: String#split with block. cannot use Regexp in the block.https://bugs.ruby-lang.org/issues/16024?journal_id=808292019-08-18T05:07:55Znagachika (Tomoyuki Chikanaga)nagachika00@gmail.com
<ul><li><strong>Backport</strong> changed from <i>2.5: DONTNEED, 2.6: REQUIRED</i> to <i>2.5: DONTNEED, 2.6: DONE</i></li></ul><p>ruby_2_6 r67743 merged revision(s) f1b76ea63ce40670071a857f408a4747c571f1e9,1d1f98d49c9908f4e3928e582d31fd2e9f252f92.</p>