以下正则表达式(url)模式与命名组不匹配:
^/(.+?)/(.+)?(_p(?<Page>\d+))?
我不知道为什么这在可选块中不起作用:
?()?
这种模式有什么问题?如何才能得到正确的结果?
答案 0 :(得分:2)
第二组(.+)?
贪婪。因此它将匹配整个File_p2
。由于第3组是可选的,因此只会跳过它。
您可以将正则表达式更改为
^/([^/]+)/(.+?)(?:_p(?<Page>\d+))?$
或稍微更有效率
^/([^/]+)/([^_]+(?:_[^_]+)*?)(?:_p(?<Page>\d+))?$