import Foundation
let pattern = #"REVIEWDOG_VERSION(?:\s*=\s*|:?\s*)[\"|\']?v?\K\d+\.\d+(\.\d+)?(-[^\'\"\s]*)?"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
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 stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"1.0.0-nightly23423423423423523gdsg"#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
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 Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression