From e79cdcf61b0665d8a9bb309a607227de43e95673 Mon Sep 17 00:00:00 2001 From: Kasumi Hanazuki Date: Tue, 11 Aug 2020 09:32:02 +0000 Subject: string.c(rb_str_split_m): Handle /\K/ correctly Use BEG(0) instead of the result of rb_reg_search to handle the cases when the separator Regexp contains /\K/ (lookbehind) operator. Fixes [Bug #17113] --- test/ruby/test_string.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'test/ruby/test_string.rb') diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index 89f5b6cf9d..c4c7d55f00 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -1838,6 +1838,11 @@ CODE assert_equal("abc", s) end + def test_split_lookbehind + assert_equal([S("ab"), S("d")], S("abcd").split(/(?<=b)c/)) + assert_equal([S("ab"), S("d")], S("abcd").split(/b\Kc/)) + end + def test_squeeze assert_equal(S("abc"), S("aaabbbbccc").squeeze) assert_equal(S("aa bb cc"), S("aa bb cc").squeeze(S(" "))) -- cgit v1.2.3