I'm using Firebase Remote Config and with my current setup, the only way to make the config only released to user with correct version is by using regex.
I'm looking for a regex that match any version released later than A.B.C
So if new version is x.y.z then the following must be true for it to match:
(x > A) or {(x = A) and [(y > B) or ((y = B) and (z > C))]}
Real number example:
Match any version equal to or later than 1.1.7:
Match:
1.1.7
1.1.8
1.1.69
1.2.0
1.10.0
2.0.0
Don't match:
1.1.6
1.0.34
0.5.0
0.77.0
I have tried this regex: ^(([2-9]|[0-9]{2,}).*|1\.(([0-9]{2,}).*|[1-9]\.([0-9]{3,}|[0-9]{2,}|[7-9]))) but it doesn't match 1.2.0
CodePudding user response:
You can try this regex:
^([2-9]|1\d|1\.([2-9]|1\d|1\.([7-9]|\d\d)))
Demo here
CodePudding user response:
You could use
^(?:1\.(?:1\.(?:[789]|[1-9]\d )|(?:[1-9]\d |[2-9])\.\d )|(?:[1-9]\d |[2-9])\.\d \.\d )$
The pattern matches:
^Start of string(?:Non capture group1\.Match1.(?:Non capture group1\.Match1.(?:[789]|[1-9]\d )Match either789or 10|Or(?:[1-9]\d |[2-9])10 or 2-9\.\dMatch.and 1 digits 0-9
)Close non capture group|Or(?:Non capture group[1-9]\d10|Or[2-9]Match 2-9
)Close non capture grouop\.\d \.\dMatch.1 digits.1 digits
)Close outer non capture group$End of string
