Метод split класса Regex
Метод split класса Regex разделяет
строку на подстроки по совпадениям регулярного
выражения. Метод возвращает итератор Split,
который при обходе выдаёт части исходной строки,
расположенные между найденными совпадениями.
Параметром метод принимает строку, которую нужно
разделить.
Если регулярное выражение не найдено в строке, итератор вернёт всю исходную строку целиком. Если совпадения находятся в начале или в конце строки, то на соответствующих краях могут появиться пустые подстроки.
Синтаксис
regex.split(text)
Пример
Давайте разделим строку "abcde" по регулярному
выражению, которое соответствует символу "c":
use regex::Regex;
fn main()
{
let re = Regex::new("c").unwrap();
let res: Vec<&str> = re.split("abcde").collect();
println!("{:?}", res);
}
Результат выполнения кода:
["ab", "de"]
Пример
Давайте разделим строку "12345" по регулярному
выражению, которое соответствует одной или нескольким
цифрам:
use regex::Regex;
fn main()
{
let re = Regex::new(r"\d+").unwrap();
let res: Vec<&str> = re.split("12345").collect();
println!("{:?}", res);
}
Результат выполнения кода:
["", ""]
Так как всё содержимое строки совпало с регулярным выражением, метод вернул две пустые подстроки - до и после совпадения.
Пример
Давайте разделим строку "abcde" по регулярному
выражению, которое соответствует символам "b"
или "d":
use regex::Regex;
fn main()
{
let re = Regex::new("[bd]").unwrap();
let res: Vec<&str> = re.split("abcde").collect();
println!("{:?}", res);
}
Результат выполнения кода:
["a", "c", "e"]
Пример
Давайте разделим строку "abcde" по регулярному
выражению, которое не встречается в строке:
use regex::Regex;
fn main()
{
let re = Regex::new("xyz").unwrap();
let res: Vec<&str> = re.split("abcde").collect();
println!("{:?}", res);
}
Результат выполнения кода:
["abcde"]
Смотрите также
-
метод
splitn,
который разделяет строку на ограниченное число частей -
метод
replace_all,
который заменяет все совпадения регулярного выражения -
метод
find_iter,
который возвращает итератор по всем совпадениям -
класс
Regex,
который представляет скомпилированное регулярное выражение