// 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)[\n\s]*=>[\n\s]*\[[\n\s]*(\([^\]]+\))[\n\s]*\]").unwrap();
let string = "{
\"outcome\" => \"success\",
\"result\" => {
\"deep-copy-subject-mode\" => false,
\"vault\" => undefined,
\"security-domain\" => {
\"jboss-web-policy\" => {
\"acl\" => undefined,
\"audit\" => undefined,
\"authentication\" => undefined,
\"cache-type\" => \"default\",
\"identity-trust\" => undefined,
\"jsse\" => undefined,
\"mapping\" => undefined,
\"authorization\" => {\"classic\" => {\"policy-modules\" => [{
\"code\" => \"Delegating\",
\"flag\" => \"required\",
\"module-options\" => undefined
}]}}
},
\"other\" => {
\"acl\" => undefined,
\"audit\" => undefined,
\"authorization\" => undefined,
\"cache-type\" => \"default\",
\"identity-trust\" => undefined,
\"jsse\" => undefined,
\"mapping\" => undefined,
\"authentication\" => {\"classic\" => {\"login-modules\" => [
{
\"code\" => \"Remoting\",
\"flag\" => \"optional\",
\"module-options\" => [(\"password-stacking\" => \"useFirstPass\")]
},
{
\"code\" => \"RealmUsersRoles\",
\"flag\" => \"required\",
\"module-options\" => [
(\"usersProperties\" => \"${jboss.server.config.dir}/application-users.properties\"),
(\"rolesProperties\" => \"${jboss.server.config.dir}/application-roles.properties\"),
(\"realm\" => \"ApplicationRealm\"),
(\"password-stacking\" => \"useFirstPass\")
]
}
]}}
},
\"jboss-ejb-policy\" => {
\"acl\" => undefined,
\"audit\" => undefined,
\"authentication\" => undefined,
\"cache-type\" => \"default\",
\"identity-trust\" => undefined,
\"jsse\" => undefined,
\"mapping\" => undefined,
\"authorization\" => {\"classic\" => {\"policy-modules\" => [{
\"code\" => \"Delegating\",
\"flag\" => \"required\",
\"module-options\" => undefined
}]}}
}
}
}
}
";
// 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/