i wrote the following script. It will be used in a build process later. My goal is to decide whether it's a pre release or a release. To archive this i compare $release to a RegEx. If my RegEx matches it's a pre release, if not it's a release.

echo "$release"
if [[ "$release" =~ \d+\.\d+\.\d+[-]+.* ]];then
echo "Pre"
echo "Release"

But as result i always end up with the following:

~$ bash releasescript.sh


Ubuntu 18.04.1 LTS

I used this editor to test my RegEx. I'm stuck for at least 6h, so i would appreciate some help greatly.


1 Answer 1


\d and \w don't work in POSIX regular expressions, you could use [[:digit:]] though

echo "$release"
LANG=C # This needed only if script will be used in locales where digits not 0-9
if [[ "$release" =~ ^[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+-+ ]];then
echo "Pre"
echo "Release"

I have tested this script, it output "Pre" for given $release

Checked out your regex builder, it works only with perl compatible and javascript regex, while you need posix, or posix extended.

By @dessert:

[0-9] is the shorter alternative to [[:digit:]]. As the beginning of the string is to be matched, one should add ^, while .* at the end is superfluous: ^[0-9]+\.[0-9]+\.[0-9]+-+ – using a group this can be further shortened to: ^([0-9]+\.){2}[0-9]+-+

  • 4
    Beat me to it! Also, fwiw if you'd used shellcheck then it has a warning "SC1001: This \d will be a regular 'd' in this context.", which is quite helpful. Other answers.
    – pbhj
    May 16, 2019 at 10:45
  • 2
    Is [0-9] equivalent to [[:digit:]] though? I was under the impression that POSIX character classes match Unicode characters, so could very well match digits in languages that don't use 0-9.
    – Fax
    May 16, 2019 at 12:38
  • @Fax Not sure about [0-9] but [A-Z] match unicode characters, the way to change that is only set locale by LANG=C
    – LeonidMew
    May 16, 2019 at 12:46
  • 1
    @Fax "Is [0-9] equivalent to [[:digit:]] though?" TIL that the answer is no. May 16, 2019 at 20:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.