Как разделить на неизвестное количество вкладок, пробелов и новых строк в Rust? - PullRequest
0 голосов
/ 16 мая 2018

Я хочу добиться чего-то очень похожего на strings.Fields в Go, где я получаю все не \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

1 Ответ

0 голосов
/ 16 мая 2018

Метод split_whitespace, определенный для str в стандартной библиотеке, будет делать то, что вы хотите.

Пример из документации довольно понятен:

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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...