如何在Rust中分割未知数量的制表符,空格和换行符?

时间:2018-05-15 22:58:11

标签: rust

我希望在Go中获得与strings.Fields非常相似的内容,其中我在一行中获得所有非\tspace\n个连续字符

例如

this is a \n special \t\t word

将返回

[this, is, a, special, word]

Rust可以吗?

split函数只采用显式模式。

例如

a \t\t\t b \t\t\t\t c

for s in line.split("\t\t\t") {
    println!("{}", s);
}

将返回

a
b
\t
c

1 个答案:

答案 0 :(得分:10)

标准库中str上定义的split_whitespace方法可以满足您的需求。

文档中的示例非常清楚:

let mut iter = " Mary   had\ta\u{2009}little  \n\t lamb".split_whitespace();
assert_eq!(Some("Mary"), iter.next());
assert_eq!(Some("had"), iter.next());
assert_eq!(Some("a"), iter.next());
assert_eq!(Some("little"), iter.next());
assert_eq!(Some("lamb"), iter.next());

assert_eq!(None, iter.next());