在正则表达式中重复可变长度段
Repeating variable length segments in Regex
我正在尝试将以下内容与此正则表达式匹配:
/(?<route>(?:.*\/){1,2}?)(?<group>(?:.*\/){1,2}+)?/
- route/group/
- route1/route2/group/group2/
- route/group1/组2/
- 路线/
试图让第一组变得懒惰,让第二组变得贪婪和可选,但它们不匹配。我错过了什么?
假设路径末尾有一个文件扩展名,那么您可以使用:
(?<route>(?:[^/\s]*\/){1,2}?)(?<group>(?:[^/\s]*\/){0,2})(?=[^/]*\.)
如果不是,则将 \.
更改为 $
或任何适合的内容。
我正在尝试将以下内容与此正则表达式匹配:
/(?<route>(?:.*\/){1,2}?)(?<group>(?:.*\/){1,2}+)?/
- route/group/
- route1/route2/group/group2/
- route/group1/组2/
- 路线/
试图让第一组变得懒惰,让第二组变得贪婪和可选,但它们不匹配。我错过了什么?
假设路径末尾有一个文件扩展名,那么您可以使用:
(?<route>(?:[^/\s]*\/){1,2}?)(?<group>(?:[^/\s]*\/){0,2})(?=[^/]*\.)
如果不是,则将 \.
更改为 $
或任何适合的内容。