// 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"(?imx)^(
\#[\da-f]{3}
|\#[\da-f]{6}
|rgba\(
((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}
((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)
(,\s*(0\.\d+|1))
\)
|hsla\(
\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,
\s*((\d{1,2}|100)\s*%)\s*,
\s*((\d{1,2}|100)\s*%)
(,\s*(0\.\d+|1))
\)
|rgb\(
((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}
((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)
|hsl\(
\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,
\s*((\d{1,2}|100)\s*%)\s*,
\s*((\d{1,2}|100)\s*%)
\)
)$").unwrap();
let string = "#ffffff
#nothing
#AF12AA
rgba(222, 222, 222)
RgBa(72,73,75)
hsl(0, 100%, 100%)
rgba(1024, 1024, 10)
#ffffff
#ffffffasdf
asdf#ffffff
rgba(170,221,255,0.59)
rgba(170,221,255,0.59)asdf
rgb(0, 0, 0)
asdfrgb(0, 0, 0)
rgb(0, 0, 0)asdf
hsla(208, 56%, 46%, 1)
hsla(208, 56%, 46%, 1)asdf
asdfhsla(208, 56%, 46%, 1)
hsl(208,56%,46%)asdf
asdfhsl(208,56%,46%)";
// 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/