我有一个正则表达式,我试图用它来重写传入的 REST url,当 URL 的一部分被排除时,我陷入了一个用例。
这是我目前正在使用的正则表达式:
^(/[^/]+/(?:books))/([^/]+?)(?:/(?:(?!page).+?))?(?:/page/(\\d+))?$
例如,我使用“$1 - $2 - $3”作为编写新 URL 的部分。
以下是正常工作的示例...
"/mySite/books/topic1/page/2" results in "/mySite/books - topic1 - 2"
"/mySite/books/topic1/subtopic1/page/2" results in "/mySite/books - topic1 - 2"
以上所有工作都按预期进行。问题是当 URL 排除 URL 的“topic1”部分时,结果不是我需要的。例子:
"/mySite/books/page/2" results in "/mySite/books - page - "
我需要的是 $2 为空白,因为没有主题,并且页码仍然为 $3。我需要什么作为输出...
"/mySite/books/page/2" results in "/mySite/books - - 2"
我可以在我的正则表达式中进行哪些更改以满足该场景,而不会破坏现有的正常工作?这是在 Java 中完成的。