Ruby:如何在保留分隔符的同时在正则表达式上拆分字符串?

kch*_*kch 1 ruby regex string split

这已经 时间在这里,但从来没有一个通用的答案,所以在这里我们去:

假设你有一个字符串,任何字符串,但让我们一起去"oruh43451rohcs56oweuex59869rsr",你想用正则表达式拆分它.任何正则表达式,但让我们使用一系列数字:/\d+/.那你就用了split:

"oruh43451rohcs56oweuex59869rsr".split(/\d+/)
# => ["oruh", "rohcs", "oweuex", "rsr"]
Run Code Online (Sandbox Code Playgroud)

这很可爱,但我想要数字.所以我们有scan:

"oruh43451rohcs56oweuex59869rsr".scan(/\d+/)
# => ["43451", "56", "59869"]
Run Code Online (Sandbox Code Playgroud)

但我想要一切!比方说,是split_and_scan吗?不.

怎么样我splitscan然后zip呢?让我阻止你在那里.

好的,怎么样?

Ama*_*dan 6

如果split模式包含捕获组,则该组将包含在结果数组中.

str = "oruh43451rohcs56oweuex59869rsr"
str.split(/(\d+)/)
# => ["oruh", "43451", "rohcs", "56", "oweuex", "59869", "rsr"]
Run Code Online (Sandbox Code Playgroud)

如果你想要它拉链,

str.split(/(\d+)/).each_slice(2).to_a
# => [["oruh", "43451"], ["rohcs", "56"], ["oweuex", "59869"], ["rsr"]]
Run Code Online (Sandbox Code Playgroud)