我希望在Go中获得与strings.Fields
非常相似的内容,其中我在一行中获得所有非\t
,space
和\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
答案 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());