// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r#"(?sx)(?: ([^";\r\n]*) #1 value without quotes or
| \x20* ("(?:[^"]+|"")*") \x20* #2 value inside quotes
)
(?: (;) #3 values delimiter or
| [\r\n]+ # rows delimiter
)"#).unwrap();
let string = "501 ; 8300000000000 ; \";Автономный ;\"\";округ\"\"
\"\"Ненецкий\"\";\";test1
751;8600800000000; \" Автономный округ \"\"Ханты-Мансийский\"\", Район Советский\" ;
1755;8700300000000;Автономный округ Чукотский, Район Билибинский
1725;7501900000000;Край Забайкальский, Район Петровск-Забайкальский
;;
711;2302100000000;Край Краснодарский, Район Лабинский
729;2401600000000;Край Красноярский, Район Иланский
765;2700700000000;Край Хабаровский, Район Вяземский";
let substitution = "\\1\\2\\x01\\3\\x02";
// result will be a String with the substituted value
let result = regex.replace_all(string, substitution);
println!("{}", result);
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Rust, please visit: https://docs.rs/regex/latest/regex/