Estou tentando dividir a String
retenção de cada correspondência de padrão, mas com a parte correspondente retida como o início da próxima substring, em vez do terminador da última.
Implementação atual:
let s = String::from("AaaBbCc");
for block in s.split_inclusive(|c: char| c.is_uppercase()) {
println!("{block}")
}
Saída atual
A
aaB
bC
c
Saída desejada
Aaa
Bb
Cc
Como isso pode ser alcançado?
Não acho que a biblioteca padrão possa ajudá-lo (embora exista um milhão de métodos
String
, posso estar errado). Mas é um iterador simples o suficiente para você mesmo escrever, se você realmente precisar de preguiça:Eu acreditava que isso não poderia ser alcançado através de um único método no
String
. Mas há uma solução alternativa como segue: