着信RESTURLを書き換えるために使用しようとしている正規表現があり、URLの1つのセクションが除外されると、1つのユースケースでスタックします。
これが私が現在使用している正規表現です:
^(/[^/]+/(?:books))/([^/]+?)(?:/(?:(?!page).+?))?(?:/page/(\\d+))?$
例として、新しいURLを作成する際に使用する部分として「$ 1-$2-$3」を使用しています。
正しく機能している例を次に示します...
"/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 - "
私が必要としているのは、トピックがなく、ページ番号が$ 3のままであるため、$2を空白にすることです。出力として必要なもの...
"/mySite/books/page/2" results in "/mySite/books - - 2"
正しく機能する既存のシナリオを中断することなく、そのシナリオを満たすために正規表現で何を変更できますか?これはJavaで行われています。