我有一個正則表達式我試圖用來重寫傳入的REST URL,並且在URL的一部分被排除時陷入一個用例中。當字符串部分排除時的正則表達式反向引用
這是我目前使用正則表達式:
^(/[^/]+/(?:books))/([^/]+?)(?:/(?:(?!page).+?))?(?:/page/(\\d+))?$
作爲例子中,我使用爲部分在編寫新的URL中使用 「$ 1 - $ 3 - $ 2」。
這裏是正在正常工作的例子...
"/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是空白,因爲沒有主題,頁號仍然港幣$ 24。我需要作爲輸出...
"/mySite/books/page/2" results in "/mySite/books - - 2"
我能在我的正則表達式改變,以滿足該場景不破壞現有的那些正常工作?這是在Java中完成的。
這正是我需要的感謝!我做了一些小改動,使頁面/#可選,最後以^(/ [^ /] +/books)/(?:(?/ page +)([^ /] +)/)?(?: page/(\\ d +))?$ –