gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:50:22 26 4
gpt4 key购买 nike

我希望能够在字符串 bbcc 上分隔字符串 aabbaacaaaccaaa 但在 bc。该示例将生成 aa,aacaaa,aaa

我已经可以在单个分隔符上拆分字符串,words() 函数在 \n\t 上拆分字符串>,所以我认为这一定是可能的。

最佳答案

不幸的是,您现在无法使用标准库 执行此操作。不过,您可以拆分多个 char 分隔符,就像 words 一样。你需要给一个数组或字符片来split:

for part in "a,bc;d".split([',', ';']) {
println!(">{}<", part);
}

但是,如果您尝试使用字符串:

for part in "a,bc;d".split([",", ";"]) {
println!(">{}<", part);
}

你会得到错误:

error[E0277]: expected a `FnMut<(char,)>` closure, found `[&str; 2]`
--> src/main.rs:2:32
|
2 | for part in "a,bc;d".split([",", ";"]) {
| ----- ^^^^^^^^^^ expected an `FnMut<(char,)>` closure, found `[&str; 2]`
| |
| required by a bound introduced by this call
|
= help: the trait `FnMut<(char,)>` is not implemented for `[&str; 2]`
= help: the following other types implement trait `Pattern<'a>`:
&'b [char; N]
&'b [char]
[char; N]
= note: required for `[&str; 2]` to implement `Pattern<'_>`
note: required by a bound in `core::str::<impl str>::split`

在 nightly Rust 中,你可以实现 Pattern用于包含一段字符串的您自己的类型。

如果您喜欢使用不属于标准库且得到良好支持的 crate,您可以使用 regex :

use regex; // 1.4.5

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

关于string - 如何在多个分隔符上拆分字符串(String 或 &str)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com