// 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"(?x)([^\s:,]+)(?#get field)
:[ ]*(?#get separator)
([^,\{\}\n\[\]\s][^,\n]*)(?#get value)").unwrap();
let string = "{
field-1: \"field value 1\",
field2:\"field 2\",\"fieldThree\": \"value field param {three} \",
\"subobject\":{
\"subfield1\":1.1,
\"sub-field-2\":\"subval [1.2]\",
\"sub-subobject\":{
\"sub_subfield1\":\"sub sub field 1 ~\",
\"sub_subfield2\":\"sub sub field 2 !@#$%/\"
}
},
\"array\":[
{ objectA:01, objectAA:02 },
{ objectB:01, objectBB:02 }
]
}";
// 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/