// 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"(?:{{(?:(\d?\-?\d?)(:=?)('[^']*'),*).*?}})").unwrap();
let string = "0:'ingen',1:'menneske',2:'mennesker'
0:='ingen',-1:'fugl'
1:'cola',2-:'colar'
0:='ingen',0:'biler',1:'bil',2:'biler',3-:'bøller'
{{0:'ingen',1:'menneske',2:'mennesker'}}
{{0-2:='ingen',0-1:'fugl'}}
{{1:'cola',2-:'colar'}}
{{0:='ingen',0:'biler',1:'bil',2:'biler',3-:'bøller'}}
Single ${{var}}
Vi er ${{var_U}}{{0:'ingen',1:'menneske',2:'mennesker'}}
Der er en ${{var_1}}{{0:='ingen',0-1:'fugl'}}
Gi' mig ${{var}}{{1:'cola',2-:'colar'}}
Jeg har ${{var}}{{0:='ingen',0:'biler',1:'bil',2:'biler',3-:'bøller'}}
\\$\\{\\{(.+)\\}\\}\\{\\{((\\d)(\\-)?(\\d)?(:(=)?)\\'(.+)\\'),?\\}\\}
\\${{([A-Za-z\\_\\d]+)}}((?:{{)?((\\d-?\\d?)(:=?)\\'(.*?)\\'),?(?:}})?)?
\\${{(?P<var>[A-Za-z09_]+)}}({{(?:(?P<factorL>\\d)?(?P<diff>\\-)?(?P<factorH>\\d)?(?P<assert>:=?)(\\'(?P<string>.+?)\\')+?)?}})?
{{([A-Za-z0-9_]+)}}(?:{{((\\d?\\-?\\d?)(:=?)('.+?'),?)+}})?";
// 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/