// 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#"(?:RTDM_Thread_Pool)",(?:"\w+":"[0-9A-Za-z-_]{1,}",){1,}"__value_string__":"[^"]+?metric=\'(rtmsasrtdm01.\w+ActiveThreads)"#).unwrap();
let string = "{\"annotations\":{\"DominosAlarm\":\"RTDM_Thread_Pool\",\"__alertId__\":\"72\",\"__alertScreenshotToken__\":\"d011471d-3947-409b-8ea4-d74bfb288d11\",\"__dashboardUid__\":\"Do8Yh3jmk\",\"__panelId__\":\"2\",\"__value_string__\":\"[ var='A2' metric='rtmcrtsasrtdm01.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A3' metric='rtmcrtsasrtdm01.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A4' metric='rtmcrtsasrtdm01.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A5' metric='rtmcrtsasrtdm02.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A6' metric='rtmcrtsasrtdm02.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A7' metric='rtmcrtsasrtdm02.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A8' metric='rtminfsasrtdm01.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A9' metric='rtminfsasrtdm01.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A10' metric='rtminfsasrtdm01.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A11' metric='rtminfsasrtdm02.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A12' metric='rtminfsasrtdm02.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A13' metric='rtminfsasrtdm02.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A14' metric='rtmsasrtdm01.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A15' metric='rtmsasrtdm01.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A16' metric='rtmsasrtdm01.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A17' metric='rtmsasrtdm02.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A18' metric='rtmsasrtdm02.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A19' metric='rtmsasrtdm02.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A20' metric='rtmsasrtdm03.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A21' metric='rtmsasrtdm03.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A22' metric='rtmsasrtdm03.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A23' metric='rtmsasrtdm04.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A24' metric='rtmsasrtdm04.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A25' metric='rtmsasrtdm04.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A26' metric='rtmsasrtdm05.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A27' metric='rtmsasrtdm05.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A28' metric='rtmsasrtdm05.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A29' metric='rtmsasrtdm06.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A30' metric='rtmsasrtdm06.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A31' metric='rtmsasrtdm06.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A32' metric='NoData' labels={} value=null ]\"},\"endsAt\":\"2022-08-15T14:51:09.011+03:00\",\"fingerprint\":\"07a1142e17b266ce\",\"receivers\":[{\"name\":\"autogen-contact-point-default\"}],\"startsAt\":\"2022-08-15T14:48:09.011+03:00\",\"status\":{\"inhibitedBy\":[],\"silencedBy\":[],\"state\":\"active\"},\"updatedAt\":\"2022-08-15T14:48:15.951+03:00\",\"generatorURL\":\"http://rtmsasanalys01.msk.mts.ru:3000/alerting/grafana/UzwGQ2kVz/view\",\"labels\":{\"Trigger\":\"[ var='A0' metric='NoData' labels={} value=null ], [ var='A1' metric='NoData' labels={} value=null ], [ var='A2' metric='rtmcrtsasrtdm01.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A3' metric='rtmcrtsasrtdm01.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A4' metric='rtmcrtsasrtdm01.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A5' metric='rtmcrtsasrtdm02.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A6' metric='rtmcrtsasrtdm02.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A7' metric='rtmcrtsasrtdm02.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A8' metric='rtminfsasrtdm01.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A9' metric='rtminfsasrtdm01.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A10' metric='rtminfsasrtdm01.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A11' metric='rtminfsasrtdm02.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A12' metric='rtminfsasrtdm02.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A13' metric='rtminfsasrtdm02.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A14' metric='rtmsasrtdm01.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A15' metric='rtmsasrtdm01.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A16' metric='rtmsasrtdm01.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A17' metric='rtmsasrtdm02.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A18' metric='rtmsasrtdm02.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A19' metric='rtmsasrtdm02.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A20' metric='rtmsasrtdm03.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A21' metric='rtmsasrtdm03.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A22' metric='rtmsasrtdm03.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A23' metric='rtmsasrtdm04.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A24' metric='rtmsasrtdm04.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A25' metric='rtmsasrtdm04.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A26' metric='rtmsasrtdm05.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A27' metric='rtmsasrtdm05.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A28' metric='rtmsasrtdm05.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A29' metric='rtmsasrtdm06.ActivityThreadPool_ActiveThreads' labels={} value=null ], [ var='A30' metric='rtmsasrtdm06.JdbcOracle_ActiveThreads' labels={} value=null ], [ var='A31' metric='rtmsasrtdm06.JdbcSastkts_ActiveThreads' labels={} value=null ], [ var='A32' metric='NoData' labels={} value=null ]\",\"__alert_rule_uid__\":\"UzwGQ2kVz\",\"alertname\":\"RTDM Thread Pool alert\",\"rule_uid\":\"UzwGQ2kVz\"}}";
// 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/