// 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#"(\W|^)("campaignName": "HTML Summer PAID")(\W|$)"#).unwrap();
let string = "{
\"id\": \"1\",
\"method\": \"store\",
\"params\": {
\"model\": \"Impression\",
\"objects\": [
{
\"campaignName\": \"HTML Summer PAID\",
\"campaignTypeImpressionNumber\": 3,
\"campaignTypeSessionImpressionNumber\": 1,
\"eventName\": \"mainLto3\",
\"eventNumber\": 1,
\"impressionNumber\": 1,
\"inAppStatus\": \"paying\",
\"isDefaultConfig\": false,
\"maxLevel\": 0,
\"mode\": \"default\",
\"parameters\": {
\"tleName\": \"summertle\"
},
\"sessionEventNumber\": 1,
\"sessionImpressionNumber\": 1,
\"sessionNumber\": 2,
\"subscriptionStatus\": \"free\",
\"timestamp\": 1659778581.808
},
{
\"campaignName\": \"Nested: Paid Offer 1\",
\"campaignTypeImpressionNumber\": 3,
\"campaignTypeSessionImpressionNumber\": 1,
\"eventName\": \"mainLto3\",
\"eventNumber\": 1,
\"impressionNumber\": 1,
\"inAppStatus\": \"paying\",
\"isDefaultConfig\": false,
\"maxLevel\": 0,
\"mode\": \"default\",
\"parameters\": {
\"tleName\": \"summertle\"
},
\"sessionEventNumber\": 1,
\"sessionImpressionNumber\": 1,
\"sessionNumber\": 2,
\"subscriptionStatus\": \"free\",
\"timestamp\": 1659778581.809
},
{
\"campaignName\": \"Nested: Paid Offer 2\",
\"campaignTypeImpressionNumber\": 3,
\"campaignTypeSessionImpressionNumber\": 1,
\"eventName\": \"mainLto3\",
\"eventNumber\": 1,
\"impressionNumber\": 1,
\"inAppStatus\": \"paying\",
\"isDefaultConfig\": false,
\"maxLevel\": 0,
\"mode\": \"default\",
\"parameters\": {
\"tleName\": \"summertle\"
},
\"sessionEventNumber\": 1,
\"sessionImpressionNumber\": 1,
\"sessionNumber\": 2,
\"subscriptionStatus\": \"free\",
\"timestamp\": 1659778581.809
},
{
\"campaignName\": \"Nested: Paid Offer 3\",
\"campaignTypeImpressionNumber\": 3,
\"campaignTypeSessionImpressionNumber\": 1,
\"eventName\": \"mainLto3\",
\"eventNumber\": 1,
\"impressionNumber\": 1,
\"inAppStatus\": \"paying\",
\"isDefaultConfig\": false,
\"maxLevel\": 0,
\"mode\": \"default\",
\"parameters\": {
\"tleName\": \"summertle\"
},
\"sessionEventNumber\": 1,
\"sessionImpressionNumber\": 1,
\"sessionNumber\": 2,
\"subscriptionStatus\": \"free\",
\"timestamp\": 1659778581.81
}
]
},
\"jsonrpc\": \"2.0\"
}";
// result will be a tuple containing the start and end indices for the first match in the string
let result = regex.captures(string);
let (start, end) = match result {
Some((s, e)) => (s, e),
None => {
// ...
}
};
println!("{}", &string[start, end]);
}
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/