[ruby-core:91418] [Ruby trunk Feature#15446] Add a method `String#each_match` to the Ruby core

From: sawadatsuyoshi@...
Date: 2019-02-06 08:00:11 UTC
List: ruby-core #91418
SXNzdWUgIzE1NDQ2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgc2F3YSAoVHN1eW9zaGkgU2F3YWRhKS4N
Cg0KDQpJIHdvdWxkIHJhdGhlciBwcm9wb3NlIHRvIGhhdmUgYFN0cmluZyNzY2FuYCB0YWtlIGFu
IG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCB0aGF0IGlzIGNvbXBhcmFibGUgdG8gdGhlIG9wdGlv
bmFsIHNlY29uZCBhcmd1bWVudCBgY2FwdHVyZWAgb2YgYFN0cmluZyNbXWAgYWZ0ZXIgYSByZWdl
eHAgYXJndW1lbnQ6DQoNCmBgYHJ1YnkNCnIgPSAvXGIoW2Etel18KFthLXpdKVthLXpdKlwxKVxi
L2kNCnN0cltyXSAjID0+ICJWaXYiDQpzdHJbciwgMF0gIyA9PiAiVml2Ig0Kc3RyW3IsIDFdICMg
PT4gIlZpdiINCnN0cltyLCAyXSAjID0+ICJWIg0KYGBgDQoNCnNvIHRoYXQgaXQgc2hvdWxkIHdv
cmsgbGlrZSB0aGlzOg0KDQpgYGBydWJ5DQpzdHIuc2NhbihyKSAjID0+IFtbIlZpdiIsICJWIl0s
IFsiQm9iIiwgIkIiXSwgWyJCb2IiLCAiQiJdLCBbIkV2ZSIsICJFIl0sIFsiYSIsIG5pbF0sIFsi
RXZlIiwgIkUiXSwgWyJCb2IiLCAiQiJdLCBbImEiLCBuaWxdLCBbInJlZ3VsYXIiLCAiciJdXQ0K
c3RyLnNjYW4ociwgMCkgIyA9PiBbIlZpdiIsICJCb2IiLCAiQm9iIiwgIkV2ZSIsICJhIiJFdmUi
LCAiQm9iIiwgImEiLCAicmVndWxhciJdDQpzdHIuc2NhbihyLCAxKSAjID0+IFsiVml2IiwgIkJv
YiIsICJCb2IiLCAiRXZlIiwgImEiIkV2ZSIsICJCb2IiLCAiYSIsICJyZWd1bGFyIl0NCnN0ci5z
Y2FuKHIsIDIpICMgPT4gWyJWIiwgIkIiLCAiQiIsICJFIiwgbmlsLCAiRSIsICJCIiwgbmlsLCAi
ciJdDQpgYGANCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpG
ZWF0dXJlICMxNTQ0NjogQWRkIGEgbWV0aG9kIGBTdHJpbmcjZWFjaF9tYXRjaGAgdG8gdGhlIFJ1
YnkgY29yZQ0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE1NDQ2I2NoYW5nZS03
NjY3OQ0KDQoqIEF1dGhvcjogQ2FyeUluVmljdG9yaWEgKENhcnkgU3dvdmVsYW5kKQ0KKiBTdGF0
dXM6IE9wZW4NCiogUHJpb3JpdHk6IE5vcm1hbA0KKiBBc3NpZ25lZTogDQoqIFRhcmdldCB2ZXJz
aW9uOiANCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmBTdHJpbmcj
ZWFjaF9tYXRjaGAgd291bGQgaGF2ZSB0d28gZm9ybXM6DQoNCiplYWNoX21hdGNoKHBhdHRlcm4p
IHsgfG1hdGNofCBibG9jayB9IOKGkiBzdHIqDQoqZWFjaF9tYXRjaChwYXR0ZXJuKSDihpIgYW5f
ZW51bWVyYXRvcioNCg0KVGhlIGxhdHRlciB3b3VsZCBiZSBpZGVudGljYWwgdG8gdGhlIGZvcm0g
KmdzdWIocGF0dGVybikg4oaSIGVudW1lcmF0b3IqIG9mIFtTdHJpbmcjZ3N1Yl0oaHR0cDovL3J1
YnktZG9jLm9yZy9jb3JlLTIuNS4xL1N0cmluZy5odG1sI21ldGhvZC1pLWdzdWIpLiBUaGUgZm9y
bWVyIHdvdWxkIHNpbXBseSB5aWVsZCB0aGUgbWF0Y2hlcyB0byBhIGJsb2NrIGFuZCByZXR1cm4g
dGhlIHJlY2VpdmVyLg0KDQpJIGZyZXF1ZW50bHkgdXNlIHRoZSBmb3JtIG9mIGBnc3ViYCB0aGF0
IHJldHVybnMgYW4gZW51bWVyYXRvciBpbnN0ZWFkIG9mIGBzY2FuYCB3aGVuIGNoYWluaW5nIHRv
IEVudW1lcmFibGUgbWV0aG9kcy4gVGhhdCdzIGJlY2F1c2UgYHNjYW5gIHJldHVybnMgYW4gdW5u
ZWVkZWQgdGVtcG9yYXJ5IGFycmF5LiBUaGlzIHVzZSBvZiBgZ3N1YmAgY2FuIGFsc28gYmUgdXNl
ZnVsIHdoZW4gdGhlIHBhdHRlcm4gY29udGFpbnMgY2FwdHVyZSBncm91cHMsIHdoaWNoIGNhbiBi
ZSBhIGNvbXBsaWNhdGlvbiB3aGVuIHVzaW5nIGBzY2FuYCwgYXMgaW4gdGhlIGZvbGxvd2luZyBl
eGFtcGxlDQoNClN1cHBvc2Ugd2UgYXJlIGdpdmVuIGEgc3RyaW5nIGFuZCB3aXNoIHRvIGNvdW50
IHRoZSBudW1iZXIgb2Ygb2NjdXJyZW5jZXMgb2YgZWFjaCB3b3JkIHRoYXQgYmVnaW5zIGFuZCBl
bmRzIHdpdGggdGhlIHNhbWUgbGV0dGVyIChjYXNlLWluc2Vuc2l0aXZlKS4NCg0KICAgICBzdHIg
PSAiVml2IGFuZCBCb2IgYXJlIHBhcnR5IGFuaW1hbHMuIEJvYiBhbmQgRXZlIGFyZSBhIGNvdXBs
ZSB3aG8gbWV0IG9uIENocmlzdG1hcyBFdmUuIEJvYiBpcyBhIHJlZ3VsYXIgZ3V5LiINCg0KICAg
ICByID0gL1xiKD86W2Etel18KFthLXpdKVthLXpdKlwxKVxiL2kNCg0KVGhpcyByZWd1bGFyIGV4
cHJlc3Npb24gcmVhZHMsICJtYXRjaCBhIHdvcmQgYnJlYWssIGZvbGxvd2VkIGJ5IG9uZSBsZXR0
ZXIgb3IgYnkgdHdvIG9yIG1vcmUgbGV0dGVycyB3aXRoIHRoZSBsYXN0IG1hdGNoaW5nIHRoZSBm
aXJzdCAoY2FzZSBpbnNlbnNpdGl2ZSksIGFsbCBmb2xsb3dlZCBieSBhIHdvcmQgYnJlYWsiLg0K
DQogICAgIGVudW0gPSBzdHIuZWFjaF9tYXRjaChyKQ0KICAgICAgICAjPT4gIzxFbnVtZXJhdG9y
OiAiVml2IGFuZCBCb2IgYXJlIHBhcnR5Li4uYSByZWd1bGFyIGd1eS4iOmdzdWIoL1xiKD86W2Et
el18KFthLXpdKVthLXpdKlwxKVxiL2kpPiANCiANCldlIGNhbiBjb252ZXJ0IGBlbnVtYCB0byBh
biBhcnJheSB0byBzZWUgdGhlIHdvcmRzIHRoYXQgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGVu
dW1lcmF0b3IgYW5kIHBhc3NlZCB0byB0aGUgYmxvY2suDQoNCiAgICBlbnVtLnRvX2ENCiAgICAg
ICAgIz0+IFsiVml2IiwgIkJvYiIsICJCb2IiLCAiRXZlIiwgImEiLCAiRXZlIiwgIkJvYiIsICJh
IiwgInJlZ3VsYXIiXSANCg0KQ29udGludWluZywgDQoNCiAgICBlbnVtLmVhY2hfd2l0aF9vYmpl
Y3QoSGFzaC5uZXcoMCkpIHsgfHdvcmQsIGh8IGhbd29yZF0gKz0gMSB9DQogICAgICAgIz0+IHsi
Vml2Ij0+MSwgIkJvYiI9PjMsICJFdmUiPT4yLCAiYSI9PjIsICJyZWd1bGFyIj0+MX0gDQoNCldl
IGNvdWxkIGFsdGVybmF0aXZlbHkgdXNlIGBlYWNoX21hdGNoYCB3aXRoIGEgYmxvY2suDQoNCiAg
ICAgaCA9IEhhc2gubmV3KDApDQogICAgIHN0ci5lYWNoX21hdGNoKHIpIHsgfHdvcmR8IGhbd29y
ZF0gKz0gMSB9DQogICAgICAgICM9PiAiVml2IGFuZCBCb2IgYXJlIHBhcnR5IGFuaW1hbHMuIEJv
YiBhbmQgRXZlIGFyZSBhIGNvdXBsZSB3aG8gbWV0IG9uIENocmlzdG1hcyBFdmUuIEJvYiBpcyBh
IHJlZ3VsYXIgZ3V5LiINCiAgICAgaCAjPT4geyJWaXYiPT4xLCAiQm9iIj0+MywgIkV2ZSI9PjIs
ICJhIj0+MiwgInJlZ3VsYXIiPT4xfSANCg0KVGhpcyBmb3JtIG9mIGBlYWNoX21hdGNoYCBoYXMg
bm8gY291bnRlcnBhcnQgd2l0aCBgZ3N1YmAuDQoNCkNvbnNpZGVyIG5vdyBob3cgYHNjYW5gIHdv
dWxkIGJlIHVzZWQgaGVyZS4gQmVjYXVzZSBvZiB0aGUgd2F5IGBzY2FuYCB0cmVhdHMgY2FwdHVy
ZSBncm91cHMsIHdlIGNhbm5vdCB3cml0ZQ0KDQogICAgc3RyLnNjYW4ocikNCiAgICAgICAjPT4g
W1siViJdLCBbIkIiXSwgWyJCIl0sIFsiRSJdLCBbbmlsXSwgWyJFIl0sIFsiQiJdLCBbbmlsXSwg
WyJyIl1dIA0KDQpJbnN0ZWFkIHdlIG11c3QgYWRkIGEgc2Vjb25kIGNhcHR1cmUgZ3JvdXAuDQoN
CiAgICBhcnIgPSBzdHIuc2NhbigvXGIoKD86W2Etel18KFthLXpdKVthLXpdKlwyKSlcYi9pKQ0K
ICAgICAgICM9PiBbWyJWaXYiLCAiViJdLCBbIkJvYiIsICJCIl0sIFsiQm9iIiwgIkIiXSwgWyJF
dmUiLCAiRSJdLCBbImEiLCBuaWxdLCBbIkV2ZSIsICJFIl0sIFsiQm9iIiwgIkIiXSwgWyJhIiwg
bmlsXSwgWyJyZWd1bGFyIiwgInIiXV0NCg0KVGhlbg0KDQogICAgYXJyLmVhY2hfd2l0aF9vYmpl
Y3QoSGFzaC5uZXcoMCkpIHsgfCh3b3JkLF8pLGh8IGhbd29yZF0gKz0gMSB9DQogICAgICAgIz0+
IHsiVml2Ij0+MSwgIkJvYiI9PjMsICJFdmUiPT4yLCAiYSI9PjIsICJyZWd1bGFyIj0+MX0NCg0K
VGhpcyB3b3JrcyBidXQgaXQncyBhIGJpdCBvZiBhIFtkb2cncyBicmVha2Zhc3RdKGh0dHBzOi8v
ZGljdGlvbmFyeS5jYW1icmlkZ2Uub3JnL3VzL2RpY3Rpb25hcnkvZW5nbGlzaC9hLWRvZy1zLWJy
ZWFrZmFzdCkgd2hlbiBjb21wYXJlZCB0byB0aGUgdXNlIG9mIHRoZSBwcm9wb3NlZCBtZXRob2Qu
DQoNClRoZSBwcm9ibGVtIHdpdGggdXNpbmcgYGdzdWJgIGluIHRoaXMgd2F5IGlzIHRoYXQgaXQg
aXMgY29uZnVzaW5nIHRvIHJlYWRlcnMgd2hvIGFyZSBleHBlY3RpbmcgY2hhcmFjdGVyIHN1YnN0
aXR1dGlvbnMgdG8gYmUgcGVyZm9ybWVkLiBJIGFsc28gYmVsaWV2ZSB0aGF0IHRoZSBuYW1lIG9m
IHRoaXMgbWV0aG9kICh0aGUgInN1YiIgaW4gYGdzdWJgKSBoYXMgcmVzdWx0ZWQgaW4gdGhlIGZv
cm0gb2YgdGhlIG1ldGhvZCB0aGF0IHJldHVybnMgYW4gZW51bWVyYXRvciB0byBiZSB1bmRlci1h
cHByZWNpYXRlZCBhbmQgdW5kZXItdXNlZC4NCg0KU29tZSBjb21tZW50cyBiZWxvdyBwcm9wb3Nl
IHRoYXQgdGhpcyBzdWdnZXN0aW9uIGJlIGFkb3B0ZWQgYW5kLCBpbiB0aW1lLCB0aGUgZm9ybSBv
ZiBgZ3N1YmAgdGhhdCByZXR1cm5zIGFuIGVudW1lcmF0b3IgYmUgZGVwcmVjYXRlZC4NCg0KDQoN
Cg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1YnNjcmliZTogPG1haWx0
bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+Cjxo
dHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNv
cmU+Cg==

In This Thread

Prev Next