user1622437
user1622437

Reputation:

How to match a one of a set of numbers?

I am trying to match a group of numbers in regex that consist of one of the following:

1,2,3,4,5,6,7,8,9,10,11

But I am having trouble figuring out the regex.

For single digits this pattern worked fine "0|1|2|3|4|5|6|7|8|9" but it fails on double digit numbers. For example 12 passes as ok due to the regex finding the 1 in 12.

Upvotes: 0

Views: 169

Answers (3)

sQVe
sQVe

Reputation: 2015

This will work if you want to check if just one number is between 0 and 11.

^[0-9]$|^1?[0-1]$

If you want to match a string like:

1,2,3,12,32,5,1,6,8, 11

and match 0-11 then you can use the following:

(?<=,|^)([0-9]|1?[0-1])(?=,|$)

Upvotes: 0

burning_LEGION
burning_LEGION

Reputation: 13450

use this regex ^(0|1|2|3|4|5|6|7|8|9|(10)|(11))$

Upvotes: 0

Cameron
Cameron

Reputation: 98746

You can use begin and end anchors to force the whole string to be matched:

^(0|1|2|3|4|5|6|7|8|9|10|11)$

Which can be shortened to:

^(\d|10|11)$

Upvotes: 2

Related Questions