From e11af6c5672fb96c945a72126c5fb0ca86c18001 Mon Sep 17 00:00:00 2001 From: linbergil Date: Wed, 1 Nov 2023 03:41:17 +0300 Subject: [PATCH] add string verifying w/ regex --- go.mod | 7 ++++++- go.sum | 4 ++++ unpack.go | 13 +++++++++++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 903e38a..556108e 100644 --- a/go.mod +++ b/go.mod @@ -2,9 +2,14 @@ module unpackstring go 1.19 -require github.com/stretchr/testify v1.7.0 +require ( + github.com/gijsbers/go-pcre v0.0.0-20161214203829-a84f3096ab3c + github.com/stretchr/testify v1.7.0 +) require ( + github.com/GRbit/go-pcre v1.0.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index c221f64..4e8258b 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,10 @@ +github.com/GRbit/go-pcre v1.0.1 h1:8F7Wj1rxIq8ejKSXVVW2wE+4I4VnZbuOemrMk8kn3hc= +github.com/GRbit/go-pcre v1.0.1/go.mod h1:0g7qVGbMpd2Odevd92x1RpaLpR3c3F/Gv2HEnI7CwEA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gijsbers/go-pcre v0.0.0-20161214203829-a84f3096ab3c h1:o5z/Stj4aWUiDiCVFdEOgXcwNF+Z7mQSlvDTaWBK98Q= +github.com/gijsbers/go-pcre v0.0.0-20161214203829-a84f3096ab3c/go.mod h1:Bd83Kcti1U5OMXYYTjilhd6os+l6AmlTMVbDtaBvycQ= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= diff --git a/unpack.go b/unpack.go index 75d811a..17d9b48 100644 --- a/unpack.go +++ b/unpack.go @@ -2,12 +2,21 @@ package unpackstring import ( "errors" + "github.com/GRbit/go-pcre" ) var ErrInvalidString = errors.New("invalid string") -func Unpack(_ string) (string, error) { +func Unpack(str string) (string, error) { // Place your code here. - // test + + re, _ := pcre.Compile(`^\d|\d{2,}|\\(?=\D)|(?=\\)`, pcre.UTF8) + + res := re.MatchStringWFlags(str, pcre.UTF8) + + if res == true { + return "", ErrInvalidString + } + return "", nil }