import re
regex = re.compile(r"REVIEWDOG_VERSION(?:\s*=\s*|:?\s*)[\"|\']?v?\K\d+\.\d+(\.\d+)?(-[^\'\"\s]*)?", flags=re.MULTILINE)
test_str = ("This is test file.\n\n"
"REVIEWDOG_VERSION=v0.1.0\n"
"REVIEWDOG_VERSION = v0.1.0\n"
"REVIEWDOG_VERSION=0.1.0\n"
"REVIEWDOG_VERSION = 0.1.0\n"
"REVIEWDOG_VERSION=\"v0.1.0\"\n"
"REVIEWDOG_VERSION='v0.1.0'\n"
"REVIEWDOG_VERSION = \"v0.1.0\"\n"
"REVIEWDOG_VERSION = 'v0.1.0'\n"
"REVIEWDOG_VERSION=\"0.1.0\"\n"
"REVIEWDOG_VERSION='0.1.0'\n"
"REVIEWDOG_VERSION = \"0.1.0\"\n"
"REVIEWDOG_VERSION = '0.1.0'\n"
"REVIEWDOG_VERSION=\"v0.1.0-nightly20201208+12faa31\"\n"
"REVIEWDOG_VERSION='v0.1.0-nightly20201208+12faa31'\n"
"REVIEWDOG_VERSION = \"v0.1.0-nightly20201208+12faa31\"\n"
"REVIEWDOG_VERSION = 'v0.1.0-nightly20201208+12faa31'\n"
"REVIEWDOG_VERSION=\"0.1.0-nightly20201208+12faa31\"\n"
"REVIEWDOG_VERSION='0.1.0-nightly20201208+12faa31'\n"
"REVIEWDOG_VERSION = \"0.1.0-nightly20201208+12faa31\"\n"
"REVIEWDOG_VERSION = '0.1.0-nightly20201208+12faa31'\n"
"ENV REVIEWDOG_VERSION=0.1.0\n"
"ENV REVIEWDOG_VERSION 0.1.0\n"
"ARG REVIEWDOG_VERSION=0.1.0\n"
"yaml:\n"
" REVIEWDOG_VERSION: 0.1.0\n"
" REVIEWDOG_VERSION: \"0.1.0\"\n"
" REVIEWDOG_VERSION: '0.1.0'\n\n"
"The above version should be updated to the latest version with this action.\n\n\n"
"Other test cases.\n\n"
"REDPEN_VERSION=1.10.1\n\n"
"TMUX_VERSION=3.0\n")
subst = "1.0.0-nightly23423423423423523gdsg"
result = regex.sub(subst, test_str)
if result:
print(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 Python, please visit: https://docs.python.org/3/library/re.html