// 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"TR\$.+?(?=\n)").unwrap();
let string = "TR$1b3abc T0b0 4 0 20151117 062231 7 14 15 c0a81e03 0 0 1 00A 3 481915101 3 481915101 0 1 3 90047975097350 001 0 3 975097350 1 9 F10 XT 131550-251897 FT110393_RT43 loop[gw_sip,PR970149981] 0 D00c 3108 222e42 E007 020103 H018 3 481915101 10 TRAFTERM G033 20151117 06223185 0000000050 0000000772 0000001484 V013 0 20 0 0 0 SIP_OUT O038 7109 58056 56252 354 343 0 4 0 IP2TDM 192.168.31.6:6372 Z02c 20925-DY-0001b6a8-523106f36@sip.mystream.fr
GO$18c T0a3 185 0 20151117 063030 6 17 18 c0a81e03 1 0 1 00A 3 139947700 3 139947752 0 1 3 629452310 001 0 3 629452310 1 24 B10 XT 265720-251900 SIP loop[gw_sip,PEER_SFR_2] 0 D00c 3108 222e48 G033 20151117 06303070 0000000071 0000001140 0000001731 L008 1 1 3 1 E007 020103 Y005 3 15 V012 8 20 0 0 0 SIP_IN V013 8 20 0 0 0 SIP_OUT Z02c 21325-EZ-0001b7ed-3b997c5d2@sip.mystream.fr Z00d 70b7375a@pbx";
// 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/