簡體   English   中英

我怎么能選擇一個范圍的字符直到第三個 / 出現,如果沒有第三個 / 使用正則表達式選擇所有

[英]How could I select a range of characters up until a third / is present and select all if there is no third / using regular expression

我需要在字符串中選擇一個范圍,直到第三個/出現。

我目前有^([^\\/]*\\/[^\\/]*\\/[^\\/]*\\/但這僅在字符串中超過 3 /時才有效。理想情況下我需要選擇直到第三個/所有字符,如果沒有第三個/

如果有人能想到解決這個問題的方法,那就太好了。

謝謝!

要匹配從/第 3 次出現開始的子字符串,其中可能少於 3 / s,您可以使用范圍量詞使用此正則表達式:

^(?:[^/]*/){0,3}

正則表達式演示

這個怎么運作:

  • ^我們從行首開始
  • 我們使用貪婪量詞{0,3}來匹配前面的組 0 到 3 次
  • 在組內,我們匹配 0 個或多個不是/后跟/的任何字符

簡單但有點低效的方法是:

        String input = "your/input/should/be/there";
        String[] parts = input.split("/");
        if (parts.length > 2) {
            return String.join("/", parts[0], parts[1], parts[2]);
        } else {
            return input;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM