diff --git a/version.go b/version.go index 09703e8..1d96a6f 100644 --- a/version.go +++ b/version.go @@ -18,9 +18,10 @@ var ( // The raw regular expression string used for testing the validity // of a version. const ( - VersionRegexpRaw string = `v?([0-9]+(\.[0-9]+)*?)` + + VersionRegexpRaw string = `[vV]?([0-9]+(\.[0-9]+)*?)` + `(-([0-9]+[0-9A-Za-z\-~]*(\.[0-9A-Za-z\-~]+)*)|(-?([A-Za-z\-~]+[0-9A-Za-z\-~]*(\.[0-9A-Za-z\-~]+)*)))?` + `(\+([0-9A-Za-z\-~]+(\.[0-9A-Za-z\-~]+)*))?` + + `([\+\.\-~]g[0-9A-Fa-f]{10}$)?` + `?` // SemverRegexpRaw requires a separator between version and prerelease diff --git a/version_test.go b/version_test.go index cbbeac8..37a2553 100644 --- a/version_test.go +++ b/version_test.go @@ -34,6 +34,7 @@ func TestNewVersion(t *testing.T) { {"1.7rc2", false}, {"v1.7rc2", false}, {"1.0-", false}, + {"2.28.0.618.gf4bc123cb7", false}, } for _, tc := range cases {