Reputation: 331
Is there any way to make rule allow only example 1 and 3 and not all 4 of them?
/^(en\/|)([\d]{1,3})([-])(.+?)([\/])$/
examples:
https://www.phpliveregex.com/p/tFe
Upvotes: 0
Views: 58
Reputation: 163207
You might use an optional part for en/
followed by match 1-3 digits, -
and match not a /
1+ times using a negated character class.
Note that you can omit the square brackets for [\d]
, [-]
and [\/]
. If you choose a different delimiter than /
you don't have to escape the forward slash.
^(?:en/)?\d{1,3}-[^/]+/$
In parts
^
Start of string(?:en/)?
Optionally match en/
\d{1,3}
Match 1-3 digits-
Match literally[^/]+/
Match 1+ times any char except /
$
End of stringUpvotes: 4