// 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"(?mx)^
#whitespace
([ ]*)
(?:
# Error position - line location
(-{6,})([\^])
|
# Line number
([\d]+)
# Line number delim
([\|])
# Code indent
([ \t]*)
(?:
# Comment ?
([\/]{2}.+)?
|
# Else code block line
(.*)
)
$
)
|
# Function delim token
(at +)
# Function
(.+?)
# (, Path base
([\(].+?)
# File
([^\/]+?)
# Line:char
(?:(:)(\d+))?
(?:(:)(\d+))?
# Function path
([\)])").unwrap();
let string = " watching /Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/functions/index.styl
ParseError: inject/code-custom.styl:125:44
121| else
122| // Add room for window controls
123| body.mac
124| // Only target first tab bar
125| [data-keybinding-context=\"1\"] .tabs-and-actions-container
---------------------------------------------------^
126| & .tabs-and-actions-container
127| padding-left: 9em
128| & .dragging-area-left-padding
expected \":\", got \")\"
at Parser.error (/Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/parser.js:259:11)
at Parser.expect (/Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/parser.js:287:12)
at Parser.ternary (/Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/parser.js:1964:12)
at Parser.negation (/Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/parser.js:1953:17)
at Parser.expression (/Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/parser.js:1932:24)
at Parser.ternary (/Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/parser.js:1963:27)
at Parser.negation (/Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/parser.js:1953:17)
at Parser.expression (/Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/parser.js:1932:24)
at Parser.primary (/Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/parser.js:2250:23)
at Parser.member (/Users/disk0/.nvm/versions/node/v13.2.0/lib/node_modules/stylus/lib/parser.js:2174:21)
compiled inject/FontLoad.css
watching inject/FontLoad.styl
";
// 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/