如何在多个分隔符上拆分字符串(String或&str)?

awe*_*uck 5 string split rust

我希望能够以字符串分隔aabbaacaaaccaaa在弦bbcc,但不b还是c.这个例子会导致aa,aacaaa,aaa.

我已经可以在一个单一的分隔符分割字符串,字()函数把一个字符串,\n并且\t,所以我想它一定是可行的.

She*_*ter 7

不幸的是,您现在无法使用标准库执行此操作.您也可以拆分多个char分隔符words.你需要给一片人物split:

for part in "a,bc;d".split(&[',', ';'][..]) {
    println!(">{}<", part);
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您尝试使用字符串,则会收到以下错误:

error: the trait `core::str::pattern::Pattern<'_>` is not implemented for the type `&[&str]` [E0277]
    for part in "a,bc;d".split(&[",", ";"][..]) {
                         ^~~~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

但是,您可以Pattern为您自己的类型实现包含一段字符串.

如果您使用不是标准库的一部分的良好支持的箱子很酷,您可以使用正则表达式:

extern crate regex;

fn main() {
    let re = regex::Regex::new(r"bb|cc").unwrap();
    for part in re.split("aabbaacaaaccaaa") {
        println!(">{}<", part);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @ BurntSushi5因为我只想到了标准库.我已经更新了一个正则表达式的例子.你应该自己提交一个答案; 现在我得到了所有甜蜜,甜蜜的互联网点! (3认同)
  • 哈哈没关系。评论很好,因为它们不需要太多时间。:-) (2认同)