在Java中使用正则表达式转换字符串

在Java中使用正则表达式转换字符串,java,regex,string,replace,match,Java,Regex,String,Replace,Match,我正在尝试替换此字符串: String str2 = "/EMOTIONS_TAX/29027000/Points Of Interest/totem," + "/EMOTIONS_TAX/29044000/Places/Italia," + "/EMOTIONS_TAX/29027000/Military Equipment"; 进入: 所以,我想用22替换字符串中的所有长数字 你能解释一下我怎么做吗 提前感谢您的回复。如果您只想替换长号码,只需使用r

我正在尝试替换此字符串:

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

所以,我想用22替换字符串中的所有长数字

你能解释一下我怎么做吗


提前感谢您的回复。

如果您只想替换长号码,只需使用regex即可实现以下功能:

String result = 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

到目前为止你做了什么研究?你到底哪里有问题?是使用谷歌、理解正则表达式还是正确使用它们?谢谢!我不明白如何在反斜杠/或管道|之间指定文本。这可以标识斜杠/\d+/Try之间的数字?好的,它可以工作。如果我只想从字符串中提取所有带有前缀/any strings/\d+的长数字,而不替换?谢谢你/pattern/是JS构造,只需在Javaok中使用pattern,谢谢!!。如果我只想从字符串中提取前缀为/any strings/\d+的所有长数字,而不替换?谢谢,提取前缀为/any strings/\d+的所有长数字?您的想法的案例演示?/emotations\u TAX/22仅此用于/emotations\u TAX/29027000/Points Of Interest/totem?抱歉,我试图更好地解释。我想从初始字符串str2中提取2902700029044000,29027000,所有的数字字符串。我想我必须写一个str2的模式,然后提取它的子字符串\\d+,不是吗?哇,在这种情况下,解决方案完全不同。让我更新解决方案。如果这个解决方案对你有好处,请投赞成票~~
    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