我想编写以下正则表达式来仅捕获页码而不是“/ p2”。 如果没有设置页面,我还需要捕获第一组。
任何人都可以引导我纠正结果。感谢
~(.*)/c(?:(/p[0-9]+))~is
Match 1
Full match 0-34 `http://localhost:8080/clothes/c/p2`
Group 1. 0-29 `http://localhost:8080/clothes`
Group 2. 31-34 `/p2`
答案 0 :(得分:1)
(.*)/c(?:/(p[0-9]+))?
将正斜杠移出捕获组,并使页码可选(因此匹配整个字符串)
见here
修改强>
如果您的意思是“只有页码”位而不是“/ p2”则表示“2”:
(.*)/c(?:/p([0-9]+))?