I need to parse out the "permission" substring from group names, however I have two patterns this group names follow:
gcp-edp-platform-dgov-nonprod-oneil-(permission)
gcp-edp-platform-dgov-prod-atp-(permission).groups
Either the group name ends with the permission substring, or it ends with the permission substring.groups.
I need to be able to extract just the permission substring without grabbing the .groups.
I know just .*-(.*) get me everything after the last hyphen but it still grabs the .groups for the names that do have it. Can someone help me create a regex for this instance?
CodePudding user response:
Use look arounds:
(?<=-)[^-.] (?!.*-)
See live demo.
This works with the examples given (ie assumes permissions does not contain dashes or dots).
CodePudding user response:
You can use
.*-(.*?)(?:[.]groups)?$
See the regex demo. Details:
.*- any zero or more chars other than line break chars as many as possible(.*?)- Group 1: any zero or more chars other than line break chars as few as possible(?:[.]groups)?- an optional sequence of.groups$- end of string.
