簡體   English   中英

如何使用正則表達式獲取兩個管道之間的所有內容

[英]How can I get all content between two pipes using regular expression

我有一個字符串說

String s = "|India| vs Aus";

在這種情況下,結果應該只有India

第二種情況:

字符串 s = "澳大利亞 vs |印度|"; 在這種情況下,結果應該只有India

第三種情況:

字符串 s = "|印度| vs |澳大利亞|" 結果應該只包含India, Aus vs 不應該出現在 output 中。

在這些場景中,可以有任何其他詞來代替 vs。例如,字符串也可以是這樣的 |India| 在|澳大利亞|。 字符串也可以是這樣的 |India| 和|斯里蘭卡| 在|澳大利亞|。 我想要出現在兩個管道之間的那些詞,比如印度、斯里蘭卡、澳大利亞。

我想在 Java 中做到這一點。

任何指針都會有所幫助。

你會使用像...這樣的正則表達式

\|[^|]+\| 

...或者...

\|.+?\| 

您必須轉義 pipe 因為 pipe 在正則表達式中具有特殊含義or

您正在查看與此類似的內容:

    String s = "|India| vs |Aus|";
    Pattern p = Pattern.compile("\\|(.*?)\\|");
    Matcher m = p.matcher(s);
    while(m.find()){
        System.out.println(m.group(1));
    }

您需要使用該組來獲取正則表達式中括號內的內容。

暫無
暫無

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

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