// 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"(?i)#(\d+)\s*=\s*([a-zA-Z0-9]+)\s*\((.*\s*\S*)\);").unwrap();
let string = "#1=IFCOWNERHISTORY(#89024,#44585,$,.NOCHANGE.,$,$,$,1190720890);
#2=IFCSPACE('3YQLb9Ev54MBIbtTd8JFin',#1,'0001',$,$,#88513,#78663,'DesignGross_Floor_2',.ELEMENT.,.INTERNAL.,$);
#3=IFCSLAB('2DGdC704bA7vMD4RPklWqS',#1,'S01','',$,#28410,#77505,$,.FLOOR.);
#4=IFCCONNECTIONSURFACEGEOMETRY(#83383,$);
#5=IFCCONNECTIONSURFACEGEOMETRY(#84374,$);
#6=IFCGEOMETRICREPRESENTATIONCONTEXT('Plan','Model',3,1.0E-5,#17,#18276);
#7=IFCGEOMETRICREPRESENTATIONCONTEXT('Plan','Design',3,1.0E-5,#17,#18276);
#8=IFCCARTESIANPOINT((0.0,0.0,0.0));
#9=IFCDIRECTION((0.0,0.0,1.0));
#10=IFCDIRECTION((1.0,0.0,0.0));
#11=IFCCARTESIANPOINT((0.0,0.0));
#12=IFCDIRECTION((0.0,1.0,0.0));
#13=IFCMATERIAL('Column A');
#14=IFCEXTRUDEDAREASOLID(#28326,#17,#9,3657.6);
#15=IFCCARTESIANPOINT((0.0,3048.0,0.0));
#16=IFCLOCALPLACEMENT(#4428,#17);
#17=IFCAXIS2PLACEMENT3D(#8,#9,#10);
#18=IFCPROPERTYSINGLEVALUE('IsExterior',$,IFCBOOLEAN(.T.),$);
#19=IFCDIRECTION((-1.0,0.0,0.0));
#20=IFCDIRECTION((0.0,-1.0,0.0));
";
// 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/