Преобразование содержания файла при помощи Rust
У меня есть задача: преобразовать ссылки такого типа: [[content]], в ссылки такого типа: [content](content), или такие ссылки: [[content|rename]] в такие: [rename](content).
Я могу использовать парсинг файла и заменение элементов, но мне будет более удобен вариант с regex. Какие есть способы такого преобразования?
Ответы (1 шт):
Автор решения: KoVadim
→ Ссылка
Я не большой специалист по расту, но я чуточку знаю регулярки. Вооружившись докой и чуточку поэкспериментировав, я набросал такое
use regex::Regex;
fn main() {
let text = "hello, [[http://stackoverflow.com]] and [[Google|https://google.com]]!";
let re = Regex::new(r"\[\[(?P<t>[^|\[\]]*?)\|(?P<u>[^|\[\]]*?)\]\]").unwrap();
let repl = re.replace_all(text, "[$t]($u)");
println!("{}", repl);
let re2 = Regex::new(r"\[\[(?P<t>[^|\[\]]*?)\]\]").unwrap();
let repl2 = re2.replace_all(&repl, "[$t]($t)");
println!("{}", repl2);
}