I try to validate a pattern like 123*5000.
The pattern has 3 parts.
First, the [123] must contain three digits unique number.
The second is *, and the third is 5000, must be an integer, not unique is fine.
If the pattern is 223*443 it will return false (first part 223, number 2 it not unique).
If the pattern is 908*22 it will return true (first part contain unique number, second part is *, third part is integer).
If the pattern is 34*5000 it will return false (first part only contain 2 digits), and etc.
I try regex \^[0-9][0-9][0-9][*][0-9] $\ but it did not solve the first part pattern that must contains unique number.
Can anyone help me?
CodePudding user response:
You might write the pattern as:
^(?!\d*(\d)\d*\1)\d{3}\*\d $
The pattern matches:
^Start of string(?!\d*(\d)\d*\1)Negative lookahead, assert not 2 of the same digits\d{3}\*\dMatch 3 digits, then*and 1 or more digits$End of string
See a regex demo.
