Reputation: 3
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?
Upvotes: 0
Views: 32
Reputation: 163207
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}\*\d+
Match 3 digits, then *
and 1 or more digits$
End of stringSee a regex demo.
Upvotes: 1