// 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#"(?m)(\w+)\s*=\s*(?:(?:"([^"]*)"|'([^']*)'|([^;\n"']+))\s*(?:;|$))"#).unwrap();
let string = "param1=abc
param2 = abc
param3 = \"ab'c\"
param4='a\"b\"c'
param5=\"abc=def\"
param7=\"hello'
(\\w+) - Elkapja a paraméter nevét.
\\s*=\\s* - Keresi az egyenlőségjelet a felesleges szóközökkel együtt.
(?:\"([^\"]*)\"|'([^']*)'|([^;\\n\"']+)) - Elkapja az értéket a következő feltételekkel:
\"[^\"]*\": Dupla idézőjelek közötti szöveget, ami nem tartalmaz további dupla idézőjeleket.
'[^']*': Egyszerű idézőjelek közötti szöveget, ami nem tartalmaz további egyszerű idézőjeleket.
[^;\\n\"']+: Szöveget, ami nem tartalmaz sem pontosvesszőt, sem sorvégét, sem idézőjelet.
\\s*(?:;|$) - Keres egy opcionális sorvégi vagy pontosvessző elválasztót.";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
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/