// 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"(?mi)\bfield\b\(.*\)\s*\n*\{[^\}]*\s+FieldClass = FlowField;[^\}]*\}
").unwrap();
let string = "table 9070 \"Accounting Services Cue\"
{
Caption = 'Accounting Services Cue';
fields
{
field(1; \"Primary Key\"; Code[10])
{
Caption = 'Primary Key';
}
field(2; \"Requests to Approve\"; Integer)
{
CalcFormula = Count (\"Approval Entry\" WHERE (Status = CONST (Open),
\"Approver ID\" = CONST ('USERID')));
Caption = 'Requests to Approve';
Editable = false;
FieldClass = FlowField;
}
field(4; \"Ongoing Sales Invoices\"; Integer)
{
CalcFormula = Count (\"Sales Header\" WHERE (\"Document Type\" = FILTER (Invoice)));
Caption = 'Ongoing Sales Invoices';
FieldClass = FlowField;
}
field(5; \"My Incoming Documents\"; Integer)
{
CalcFormula = Count (\"Incoming Document\");
Caption = 'My Incoming Documents';
FieldClass = FlowField;
}
field(20; \"User ID Filter\"; Code[50])
{
Caption = 'User ID Filter';
FieldClass = FlowFilter;
}
}
keys
{
key(Key1; \"Primary Key\")
{
Clustered = true;
}
}
fieldgroups
{
}
}
";
// 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/