0

我正在尝试在 MockServer 中设置一些期望,我对匹配此路径的请求有特定的期望

/api/users/:user_id

使用正则表达式/api/users/.*

但是,在访问特定于用户的资源时,我还有一些其他期望要匹配:

/api/users/:user_id/books
/api/users/:user_id/books/:book_id
/api/users/:user_id/holidays

我不太确定如何正确使用正则表达式来匹配第一条路径,而不会影响对用户特定资源的请求(即,所有请求都在第一条路径上匹配)。

例如,我相信对于/api/users/:user_id/books路径,我可以使用正则表达式/api/users/.*/books,但这永远不会匹配,因为/api/users/.*第一个路径的正则表达式将始终匹配这些更深的 URL。

我一直在阅读此页面,但无法完全弄清楚如何正确使用正则表达式来处理这种特殊情况

4

1 回答 1

0

这里的一种通用方法可能是使用否定的前瞻断言。对于一般情况,您可以使用以下模式:

/api/users/\d+/(?!books|holidays)

然后,对于更具体的情况,使用您已经想到的模式,例如

/api/users/\d+/books
/api/users/\d+/holidays

演示

于 2018-07-01T15:06:10.137 回答