// 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#"(?msi)RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule .* https://www.%1%{REQUEST_URI} [L,R=301]
<IfModule mod_expires.c>
ExpiresDefault "access plus 1 year"
</IfModule>
<IfModule mod_headers.c>
Header unset Expires
<FilesMatch "\.(ico)$">
Header set Cache-Control "max-age=31536000, public"
Header merge Cache-Control immutable
</FilesMatch>
<FilesMatch "\.(html)$">
Header set Cache-Control "max-age=180, public"
</FilesMatch>
</IfModule>"#).unwrap();
let string = "RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\\.
RewriteCond %{HTTP_HOST} ^(?:www\\.)?(.+)$
RewriteRule .* https://www.%1%{REQUEST_URI} [L,R=301]
<IfModule mod_expires.c>
ExpiresDefault \"access plus 1 year\"
</IfModule>
<IfModule mod_headers.c>
Header unset Expires
<FilesMatch \"\\.(ico)$\">
Header set Cache-Control \"max-age=31536000, public\"
Header merge Cache-Control immutable
</FilesMatch>
<FilesMatch \"\\.(html)$\">
Header set Cache-Control \"max-age=180, public\"
</FilesMatch>
</IfModule>";
// 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/