rotarm
rotarm

Reputation: 57

Regex - optional character at the end of a string

I have a regex pattern almost working but I can't seem to get it just right. I'm trying to capture the part of string after the first hyphen but that part can be inside of square brackets so I marked them as optional and it works for the opening bracket but the closing bracket matches if it's present. So my question is, are optional characters at the end of a string matching differently than elsewhere? Any help is appreciated.

Here is the pattern I have now:

^start of string \- \[?(.*)\]?$

The example strings:

start of string - match - this part
start of string - [match - this part]

The results I'm getting:

match - this part
match - this part]

And the wanted result in both cases:

match - this part

Upvotes: 0

Views: 300

Answers (1)

btafarelo
btafarelo

Reputation: 627

Ignore the closing bracket denying it in your group capture

^start of string \\- \\[?(.*[^\\]])\\]?$

Upvotes: 1

Related Questions