我花了几个小时没有好结果(也许我的心情没有帮助)。
我正在尝试构建一个正则表达式来帮助我匹配两个网址:
/reservables/imagenes/4/editar/6
/reservables/imagenes/4/subir
如上所述,第一个网址6
中的最后一个细分不会出现在第二个网址的末尾,因为此细分在此处是可选的。所以我需要在一个正则表达式中匹配两个网址,为此,我尝试过这个:
reservables/(editar|imagenes)/([0-9]+)/(imagen|editar|actualizar|subir)/([0-9]+)
仅适用于第一个网址。所以,阅读一些关于正则表达式的注释,它表明我需要?
符号,对吗?所以,我尝试了这个,但它不起作用:
reservables/(editar|imagenes)/([0-9]+)/(imagen|editar|actualizar|subir)/([0-9]+)?
好吧,我不是我做错了。
答案 0 :(得分:2)
您也希望将?
放在/
周围,如下所示:
reservables/(editar|imagenes)/([0-9]+)/(imagen|editar|actualizar|subir)(?:/([0-9]+))?
您可以在debuggex上看到它正确匹配。
答案 1 :(得分:1)
这个会起作用:
reservables/(editar|imagenes)/([0-9]+)/(imagen|editar|actualizar|subir)/([0-9]*)