簡體   English   中英

在Java中使用正則表達式轉換字符串

[英]Convert string using regex in Java

我正在嘗試替換此字符串:

String str2 = "/EMOTIONS_TAX/29027000/Points Of Interest/totem,"
          + "/EMOTIONS_TAX/29044000/Places/Italia,"
          + "/EMOTIONS_TAX/29027000/Military Equipment";

進入:

String str2 = "/EMOTIONS_TAX/22/Points Of Interest/totem,"
           + "/EMOTIONS_TAX/22/Places/Italia,"
           + "/EMOTIONS_TAX/22/Military Equipment/sica";

所以,我想用"22"替換字符串中的所有長數字。

你能解釋一下我該怎么做嗎?

預先感謝您的任何答復。

如果您只想替換長數字,只需按如下方式通過regex即可實現:

    String str2 = "/EMOTIONS_TAX/29027000/Points Of Interest/totem,"
    + "/EMOTIONS_TAX/29044000/Places/Italia,"
    + "/EMOTIONS_TAX/29027000/Military Equipment";

    str2 = str2.replaceAll("\\d+", "22");

結果將是:

/EMOTIONS_TAX/22/Points Of Interest/totem,/EMOTIONS_TAX/22/Places/Italia,/EMOTIONS_TAX/22/Military Equipment

更新

作為OP的要求,OP實際上嘗試從字符串中檢索數字,解決方案應該是:

    String str2 = "/EMOTIONS_TAX/29027000/Points Of Interest/totem,"
                  + "/EMOTIONS_TAX/29044000/Places/Italia,"
                  + "/EMOTIONS_TAX/29027000/Military Equipment";

    Pattern pattern = Pattern.compile("\\d+");
    Matcher matcher = pattern.matcher(str2);
    while(matcher.find()) {
        System.out.println(matcher.group());
    }

和輸出:

29027000
29044000
29027000
String result = str2.replaceAll("/\\\d+/", "/22/");

暫無
暫無

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

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