// 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)\s+R\*$").unwrap();
let string = "-------------
---UPLOADS---
-------------
SESSION|01/09/2017 15:35:42.143|[SFTP:1060257_0:it:10.87.16.71] WROTE: *150 Opening BINARY mode data connection. Ready to write file /it/cpp. \"/it/cpp\") S T O R*
SESSION|01/09/2017 15:35:42.890|[SFTP:1060257_0:it:10.87.16.71] READ: *STOR END /it/cpp:PENs3*
SESSION|01/09/2017 15:35:43.133|226-Upload File Size:1571846 bytes @ 1535K/sec. MD5=8438660f668ceb3de586cd7ef1263bc4
---
SESSION|01/09/2017 15:35:42.143|[SFTP:1060257_0:it:10.87.16.71] WROTE: *150 Opening BINARY mode data connection. Ready to write file /it/cpp. \"/it/cpp\") S T O R*
SESSION|01/09/2017 15:35:43.133|226-Upload File Size:1571846 bytes @ 1535K/sec. MD5=8438660f668ceb3de586cd7ef1263bc4
SESSION|01/09/2017 15:35:42.890|[SFTP:1060257_0:it:10.87.16.71] READ: *STOR END /it/cpp:PENs3*
---
SESSION|12/20/2016 15:12:26.273|[SFTP:1008699_0:it:10.87.16.71] WROTE: *150 Opening BINARY mode data connection. Ready to write file /it/cpp. \"/it/cpp\") S T O R*
SESSION|12/20/2016 15:12:26.299|226-Upload File Size:25 bytes @ 0K/sec. MD5=7e5e5560ab14904d5f5b2af5fcd8bec3
SESSION|12/20/2016 15:12:26.299|[SFTP:1008699_0:it:10.87.16.71] WROTE: *226 Transfer complete. MD5=7e5e5560ab14904d5f5b2af5fcd8bec3 (\"/it/cpp\" 25) STOR*
---------------
---DOWNLOADS---
---------------
SESSION|01/17/2017 18:19:25.566|[SFTP:1073958_0:ss.irth.test:10.87.16.71] WROTE: *150 Opening BINARY mode data connection for /test/cpp (25 bytes). (\"/test/cpp\") R E T R*
SESSION|01/17/2017 18:19:25.767|226-Download File Size:25 bytes @ 0K/sec.
SESSION|01/17/2017 18:19:25.768|[SFTP:1073958_0:ss.irth.test:10.87.16.71] WROTE: *226 Transfer complete. MD5=7e5e5560ab14904d5f5b2af5fcd8bec3 (\"/test/cpp\") RETR*
---
SESSION|01/17/2017 18:19:26.147|[SFTP:1073958_0:ss.irth.test:10.87.16.71] WROTE: *150 Opening BINARY mode data connection for /test/cpp (25 bytes). (\"/test/cpp\") R E T R*
SESSION|01/17/2017 18:19:26.173|226-Download File Size:25 bytes @ 0K/sec.
SESSION|01/17/2017 18:19:26.174|[SFTP:1073958_0:ss.irth.test:10.87.16.71] WROTE: *226 Transfer complete. MD5=7e5e5560ab14904d5f5b2af5fcd8bec3 (\"/test/cpp\") RETR*
---
SESSION|01/17/2017 18:19:26.614|[SFTP:1073958_0:ss.irth.test:10.87.16.71] WROTE: *150 Opening BINARY mode data connection for /test/cpp (25 bytes). (\"/test/cpp\") R E T R*
SESSION|01/17/2017 18:19:26.736|226-Download File Size:25 bytes @ 0K/sec.
SESSION|01/17/2017 18:19:26.737|[SFTP:1073958_0:ss.irth.test:10.87.16.71] WROTE: *226 Transfer complete. MD5=7e5e5560ab14904d5f5b2af5fcd8bec3 (\"/test/cpp\") RETR*a";
// 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/