Lets assume I have a string
Abc=cde&efg
This formula gives me three groups
(.*=)(.*)(&.*)
But what if input string is dynamic and &efg may exists or not?
When it doesn't above formula will give me nothing.
I need to use this regex in golang and I would like to do it with one regex (if it is possible) without splitting string with &.
CodePudding user response:
You can use
^(.*=)(.*?)(&.*)?$
See the regex demo.
Details:
^- start of string(.*=)- Group 1: any zero or more chars other than line break chars as many as possible and then a=char(.*?)- Group 2: any zero or more chars other than line break chars as few as possible(&.*)?- Group 3 (optional): a&and then any zero or more chars other than line break chars as many as possible$- end of string.
