Метод splitn
Метод splitn класса Regex разделяет строку на части
по совпадениям с регулярным выражением. Он возвращает итератор,
который выдаёт не более n элементов. Параметром метод принимает
строку, которую нужно разделить, и число limit - максимальное
количество возвращаемых частей. Последняя часть содержит весь остаток
строки, даже если в нём есть совпадения с шаблоном.
Синтаксис
regex.splitn(text, limit)
Пример
Давайте разделим строку "abcde" по шаблону "c"
на две части:
use regex::Regex;
fn main()
{
let re = Regex::new("c").unwrap();
let res: Vec<&str> = re.splitn("abcde", 2).collect();
println!("{:?}", res);
}
Результат выполнения кода:
["ab", "de"]
Пример
Давайте разделим строку "12345" по шаблону "3"
на две части. Последняя часть содержит весь остаток строки:
use regex::Regex;
fn main()
{
let re = Regex::new("3").unwrap();
let res: Vec<&str> = re.splitn("12345", 2).collect();
println!("{:?}", res);
}
Результат выполнения кода:
["12", "45"]
Пример
Давайте разделим строку "abcde" по шаблону "c"
на три части. Так как совпадение только одно, итератор вернёт
всего две части:
use regex::Regex;
fn main()
{
let re = Regex::new("c").unwrap();
let res: Vec<&str> = re.splitn("abcde", 3).collect();
println!("{:?}", res);
}
Результат выполнения кода:
["ab", "de"]
Пример
Давайте разделим строку "12345" по шаблону "[0-9]"
на три части. Последняя часть содержит весь остаток строки,
включая цифры:
use regex::Regex;
fn main()
{
let re = Regex::new("[0-9]").unwrap();
let res: Vec<&str> = re.splitn("12345", 3).collect();
println!("{:?}", res);
}
Результат выполнения кода:
["", "", "345"]
Смотрите также
-
метод
split,
который разделяет строку по совпадениям без ограничения количества частей -
метод
replacen,
который заменяет не более указанного количества совпадений -
метод
find_iter,
который возвращает итератор по всем совпадениям -
метод
captures_iter,
который возвращает итератор по захватам групп