'Repeating variable length segments in Regex
I'm trying to match the following with this Regexp:
/(?<route>(?:.*\/){1,2}?)(?<group>(?:.*\/){1,2}+)?/
- route/group/
- route1/route2/group/group2/
- route/group1/group2/
- route/
Tried to make the first group lazy and the second one greedy and optional but it doesn't match. What am I missing?
Initial Demo: https://regex101.com/r/aRvvQE/2
Solution 1:[1]
Assuming there is a file extension at the end of the path then you could use:
(?<route>(?:[^/\s]*\/){1,2}?)(?<group>(?:[^/\s]*\/){0,2})(?=[^/]*\.)
If not then change \. to $ or whatever suits.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | MikeM |
