// 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#"(?m)REVIEWDOG_VERSION(?:\s*=\s*|:?\s*)[\"|\']?v?\K\d+\.\d+(\.\d+)?(-[^\'\"\s]*)?"#).unwrap();
let string = "This is test file.
REVIEWDOG_VERSION=v0.1.0
REVIEWDOG_VERSION = v0.1.0
REVIEWDOG_VERSION=0.1.0
REVIEWDOG_VERSION = 0.1.0
REVIEWDOG_VERSION=\"v0.1.0\"
REVIEWDOG_VERSION='v0.1.0'
REVIEWDOG_VERSION = \"v0.1.0\"
REVIEWDOG_VERSION = 'v0.1.0'
REVIEWDOG_VERSION=\"0.1.0\"
REVIEWDOG_VERSION='0.1.0'
REVIEWDOG_VERSION = \"0.1.0\"
REVIEWDOG_VERSION = '0.1.0'
REVIEWDOG_VERSION=\"v0.1.0-nightly20201208+12faa31\"
REVIEWDOG_VERSION='v0.1.0-nightly20201208+12faa31'
REVIEWDOG_VERSION = \"v0.1.0-nightly20201208+12faa31\"
REVIEWDOG_VERSION = 'v0.1.0-nightly20201208+12faa31'
REVIEWDOG_VERSION=\"0.1.0-nightly20201208+12faa31\"
REVIEWDOG_VERSION='0.1.0-nightly20201208+12faa31'
REVIEWDOG_VERSION = \"0.1.0-nightly20201208+12faa31\"
REVIEWDOG_VERSION = '0.1.0-nightly20201208+12faa31'
ENV REVIEWDOG_VERSION=0.1.0
ENV REVIEWDOG_VERSION 0.1.0
ARG REVIEWDOG_VERSION=0.1.0
yaml:
REVIEWDOG_VERSION: 0.1.0
REVIEWDOG_VERSION: \"0.1.0\"
REVIEWDOG_VERSION: '0.1.0'
The above version should be updated to the latest version with this action.
Other test cases.
REDPEN_VERSION=1.10.1
TMUX_VERSION=3.0
";
let substitution = "1.0.0-nightly23423423423423523gdsg";
// result will be a String with the substituted value
let result = regex.replace_all(string, substitution);
println!("{}", result);
}
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/