// 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"SPECGRID.*?\n([ \d]+)[\s\S]*?\/").unwrap();
let string = "-- Generated [
-- Format : ECLIPSE keywords (grid geometry and properties) (ASCII)
-- Exported by : Petrel 2014.4 (64-bit) Schlumberger
-- User name : apitchford
-- Date : Friday, April 29 2016 15:20:42
-- Project : Glenloth19April2016.pet
-- Grid : Tartan Wide 3D grid 150 prop
-- Generated ]
PINCH -- Generated : Petrel
/
MAPUNITS -- Generated : Petrel
METRES /
MAPAXES -- Generated : Petrel
156653.33 7788633.76 156653.33 7789633.76 157653.33 7789633.76 /
GRIDUNIT -- Generated : Petrel
METRES /
SPECGRID -- Generated : Petrel
54 166 127 1 F /
COORDSYS -- Generated : Petrel
1 127 /";
// 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/