// 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)(?:"arrayKey1": (?<arrayKey1>[^"]+),[\n\t ]+"arrayKey2": "(?<arrayKey2>[^"]+)",[\n\t ]+"arrayKey3": "(?<arrayKey3>[^"]+)")(?:[\s\S]*)(?:"anotherKey": "(?<anotherKey>[^"]+)")"#).unwrap();
let string = "{
\"key1\": \"value1\",
\"key2\": \"value2\",
\"key3\": \"value3\",
\"key4\": [
{
\"arrayKey1\": 1,
\"arrayKey2\": \"something\",
\"arrayKey3\": \"somethingelse\"
},
{
\"arrayKey1\": 2,
\"arrayKey2\": \"something2\",
\"arrayKey3\": \"somethingelse2\"
},
{
\"arrayKey1\": 3,
\"arrayKey2\": \"something3\",
\"arrayKey3\": \"somethingelse3\"
}
],
\"some very long text here\": \"\"
\"anotherKey\": \"value\",
\"keylast\": \"valuelast\"
}";
// 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/