如何在java中删除字符串中的几个特殊字符

如何在java中删除字符串中的几个特殊字符,java,regex,string,Java,Regex,String,我有一个输入字符串,比如 ${URL:URL=https://example.com/private/imgs/ROHAN_ZAVERI.jpg} 我希望输出字符串如下所示: https://example.com/private/imgs/ROHAN_ZAVERI.jpg 请告诉我使用java 8从输入字符串中删除几个特殊字符的正则表达式。您可以使用字符串函数获得与正则表达式相同的结果 String str = "${URL:URL=https://example.com/privat/i

我有一个输入字符串,比如

${URL:URL=https://example.com/private/imgs/ROHAN_ZAVERI.jpg}
我希望输出字符串如下所示:

https://example.com/private/imgs/ROHAN_ZAVERI.jpg

请告诉我使用java 8从输入字符串中删除几个特殊字符的正则表达式。

您可以使用字符串函数获得与正则表达式相同的结果

String str = "${URL:URL=https://example.com/privat/imgs/ROHAN_ZAVERI.jpg}";
str.substring(str.indexOf('=')+1, str.length -1);
System.out.println(str);
输出:

https://example.com/privat/imgs/ROHAN_ZAVERI.jpg

您可以使用字符串拆分函数来获得所需的输出

String str = "${URL:URL=https://example.com/privat/imgs/ROHAN_ZAVERI.jpg}";
String[] spl = str.Split('=','}');
Console.WriteLine(spl[1]);
输出为

https://example.com/privat/imgs/ROHAN_ZAVERI.jpg

您可以使用以下表达式:

https?[^}]*(?=})
  • https
    http
    与可选的
    s
    匹配
  • [^}]*
    匹配所有非结束括号的内容
  • (?=})
    右括号的前瞻性
    }

Java代码段:

public static void main (String[] args) throws java.lang.Exception
    {
        String str = "${URL:URL=https://example.com/private/imgs/ROHAN_ZAVERI.jpg}";
        String patternstr = "https?[^}]*(?=})";

        Pattern pattern = Pattern.compile(patternstr);
        Matcher matcher = pattern.matcher(str);
        if (matcher.find()){
        System.out.println(matcher.group(0)); 
        } 
    }
输出:

https://example.com/privat/imgs/ROHAN_ZAVERI.jpg

您可以尝试实时代码。

regex不是Java-8特有的,因此“Java-8”标记实际上不应该存在。ret=inputstring.replaceAll(“^[^=]+=(*)\\\\\\s*$”,“$1”);字符串结果=input.replaceAll(“.*=(.*)}”,“$1”);到目前为止,您尝试了什么?若拆分字符串并从数组中获取第二个索引,会怎么样?字符串[]spl=str.Split('=','}');控制台写入线(spl[1]);