我正在尝试为此模式创建匹配项:
/页/一些/事情/是/写/这里
其中/ page总是匹配a-zA-Z0-9,/ page之后的所有内容都可以包含字符a-zA-Z0-9- / 我的想法是“页面”总是用户将看到的页面,其余的是参数,用/(p1 / p2 / p3)等分隔。
这就是我想出的:^([a-zA-Z] +)/([A-Za-z0-9 - /] +)$ 它可以工作到3个斜杠:page / is / nice
但是如果我添加另一个这样的参数:page / is / nice / crash 它崩溃了。
有什么建议吗? 感谢。
答案 0 :(得分:3)
试试这个:
^/?[a-zA-Z]+(/[A-Za-z0-9]+)*$
细分:
^
- 主播/?
- 它可能以斜杠开头[a-zA-Z]+
- 一个或多个字母(/[A-Za-z0-9]+)*
- 零个或多个/字母数字(至少有一个字母数字)$
- 结束锚如果您不需要捕获结尾,则应使用非捕获组:
^/?[a-zA-Z]+(?:/[A-Za-z0-9]+)*$
如果你想要一个可选的斜杠,试试这个:
^/?[a-zA-Z]+(?:/[A-Za-z0-9]+)*/?$
注意:您可能需要根据编程语言划分斜杠。