0

我花了几个小时没有好的结果(也许我的心情没有帮助)。

我正在尝试构建一个正则表达式来帮助我匹配两个网址:

/reservables/imagenes/4/editar/6
/reservables/imagenes/4/subir

正如您在上面提到的,第一个 url 中的最后一段6不会出现在第二个 url 的末尾,因为这个段在这里是可选的。所以我需要在一个正则表达式中匹配两个网址,为此,我已经尝试过:

reservables/(editar|imagenes)/([0-9]+)/(imagen|editar|actualizar|subir)/([0-9]+)

这仅适用于第一个网址。所以,阅读一些关于正则表达式的注释它表明我需要这个?符号,对吧?所以,我尝试了这个,但它没有用:

reservables/(editar|imagenes)/([0-9]+)/(imagen|editar|actualizar|subir)/([0-9]+)?

好吧,我没有做错什么。

4

2 回答 2

2

你也想把?周围的/,像这样:

reservables/(editar|imagenes)/([0-9]+)/(imagen|editar|actualizar|subir)(?:/([0-9]+))?

您可以在debuggex上看到它正确匹配。

于 2013-04-02T16:29:22.877 回答
1

这将起作用:

reservables/(editar|imagenes)/([0-9]+)/(imagen|editar|actualizar|subir)/([0-9]*)
于 2013-04-02T16:19:18.910 回答