// 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"^(?<time>.+?)\s+(?<logname>.+?)\s+(?<log>.+?)$").unwrap();
let string = "2023-02-06T08:09:46+00:00 kubernetes.var.log.containers.app-test-app-test-space-fb5ffca1ec-0_cf-workloads_opi-05942675f9f0dd17039304733f228e7abd6ebdfd91609baf1a7afefaeb33ced8.log {\"stream\":\"stdout\",\"log\":\"Console output from test-node-app\",\"docker\":{\"container_id\":\"05942675f9f0dd17039304733f228e7abd6ebdfd91609baf1a7afefaeb33ced8\"},\"kubernetes\":{\"container_name\":\"opi\",\"namespace_name\":\"cf-workloads\",\"pod_name\":\"app-test-app-test-space-fb5ffca1ec-0\",\"pod_id\":\"f4f2592e-ed57-4375-aff7-40c7b214abe0\",\"host\":\"ap-joy-sidecar-5\",\"labels\":{\"controller-revision-hash\":\"app-test-app-test-space-fb5ffca1ec-5bb7dc5769\",\"cloudfoundry_org/app_guid\":\"8fc07280-506c-49b2-ab00-a97222fcf0a5\",\"cloudfoundry_org/guid\":\"8fc07280-506c-49b2-ab00-a97222fcf0a5\",\"cloudfoundry_org/org_guid\":\"fdf0a222-33a4-46fd-a7f9-7955b9ea862c\",\"cloudfoundry_org/org_name\":\"system\",\"cloudfoundry_org/process_type\":\"web\",\"cloudfoundry_org/source_type\":\"APP\",\"cloudfoundry_org/space_guid\":\"f1b70a4b-7581-4214-b128-2f1597f7789d\",\"cloudfoundry_org/space_name\":\"app-test-space\",\"cloudfoundry_org/version\":\"ebfde654-e73c-48da-b55b-42a37a6ba139\",\"security_istio_io/tlsMode\":\"istio\",\"service_istio_io/canonical-name\":\"app-test-app-test-space-fb5ffca1ec\",\"service_istio_io/canonical-revision\":\"latest\",\"statefulset_kubernetes_io/pod-name\":\"app-test-app-test-space-fb5ffca1ec-0\"}},\"app_id\":\"8fc07280-506c-49b2-ab00-a97222fcf0a5\",\"instance_id\":\"f4f2592e-ed57-4375-aff7-40c7b214abe0\",\"structured_data\":\"[tags@47450 source_type=\\\"APP/PROC/WEB\\\"]\"}
";
// 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/