Skip to content

Conversation

@sandeeprayala
Copy link

@sandeeprayala sandeeprayala commented Feb 11, 2020

'-' is a special character in regex when you use inside character class [], it stands for range when it appears anywhere else except

As the first character in class or after [^]
At the end of character class
so your regex should be -- 'JIRA-[0-9]+'

- is a special character in regex when you use inside character class [], it stands for range when it appears anywhere else except As the first character in class or after [^] At the end of character class so your regex should be -- 'JIRA-[0-9]+'
set -e

zero_commit='0000000000000000000000000000000000000000'
msg_regex='[JIRA\-[0-9]+\]'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sandeeprayala: as you noticed, minus is a special character, so we escaped it to match it as a literal. Your suggested change is to remove that escaping. Have you tested your change? Are you saying that the script did not work for you before?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I have tested and it worked for me, my suggestion is to remove the " [ ] "'.

once you remove the square brackets the regex would be as below.
msg_regex= 'JIRA-[0-9]+'

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree; this regex is a mess. The first [ is unescaped, which makes the rest act as a set that goes up to the closing ] after the 9.

I set up an example here with a full explanation - https://regex101.com/r/R6kCL6/1

This broken regex will incorrectly match:

  • JIRA-99]
  • 0]
  • -]

The outer brackets should be escaped or totally removed depending on the author's intent.

Copy link

@Jmangle93 Jmangle93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good way to fix this regex

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

4 participants