我正在尝试拆分String
保留每个模式匹配,但将匹配的部分保留为下一个子字符串的开头而不是最后一个子字符串的终止符。
当前实施:
let s = String::from("AaaBbCc");
for block in s.split_inclusive(|c: char| c.is_uppercase()) {
println!("{block}")
}
电流输出
A
aaB
bC
c
期望输出
Aaa
Bb
Cc
如何实现这一点?
我正在尝试拆分String
保留每个模式匹配,但将匹配的部分保留为下一个子字符串的开头而不是最后一个子字符串的终止符。
let s = String::from("AaaBbCc");
for block in s.split_inclusive(|c: char| c.is_uppercase()) {
println!("{block}")
}
A
aaB
bC
c
Aaa
Bb
Cc
如何实现这一点?
我不认为标准库能帮到你(尽管 上有上百万种方法
String
,但我可能错了)。但如果你真的需要懒惰的话,这是一个足够简单的迭代器,你可以自己编写:我相信这无法通过任何单一方法实现
String
。但有一个解决方法如下: