Moritz Büttner
Moritz Büttner

Reputation: 904

RegEx match exactly 4 digits

Ok, i have a regex pattern like this /^([SW])\w+([0-9]{4})$/

This pattern should match a string like SW0001 with SW-Prefix and 4 digits.

I thougth [0-9]{4} would do the job, but it also matches strings with 5 digits and so on.

Any suggestions on how to get this to work to only match strings with SW and 4 digits?

Upvotes: 62

Views: 235914

Answers (4)

sinasho
sinasho

Reputation: 215

you can use this code in regex

^\d{4}$

Upvotes: 7

js2010
js2010

Reputation: 27428

If you want to get into regex and match 4 numbers... You can backslash the periods too.

get-childitem | where name -match 'journal.\d{4}.txt'

Upvotes: 1

Tushar
Tushar

Reputation: 87203

Let's see what the regex /^([SW])\w+([0-9]{4})$/ match

  1. Start with S or W since character class is used
  2. One or more alphanumeric character or underscore(\w = [a-zA-Z0-9_])
  3. Four digits

This match more than just SW0001.

Use the below regex.

/^SW\d{4}$/

This regex will match string that starts with SW followed by exactly four digits.

Upvotes: 83

Jerome WAGNER
Jerome WAGNER

Reputation: 22412

in regex,

  • ^ means you want to match the start of the string
  • $ means you want to match the end of the string

so if you want to match "SW" + exactly 4 digits you need

^SW[0-9]{4}$ 

Upvotes: 30

Related Questions