Java 将url中的所有正斜杠替换为一个斜杠
我想用单斜杠替换url中的所有多个正斜杠。我尝试使用StringJava 将url中的所有正斜杠替换为一个斜杠,java,regex,string,Java,Regex,String,我想用单斜杠替换url中的所有多个正斜杠。我尝试使用StringreplaceAll()regex,但不起作用 示例案例: https://localhost/app//page1应返回为https://localhost/app/page1 https://localhost/app//page1//subpage1应返回为https://localhost/app/page1/subpage1 //page1//subpage1应返回为/page1/subpag1 您必须分配返回值: url
replaceAll()
regex,但不起作用
示例案例:
https://localhost/app//page1
应返回为https://localhost/app/page1
https://localhost/app//page1//subpage1
应返回为https://localhost/app/page1/subpage1
//page1//subpage1
应返回为/page1/subpag1
您必须分配返回值:
url=url.replaceAll(“//*”,“/”)代码>
此方法不能直接处理传递的字符串。它返回包含替换部分的新字符串。您可以使用带有lookback的正则表达式,如下所示:
(?<!https:)\/\/
您不需要为此推出自己的解决方案。Java提供了使用URI和URL的类
import java.net.URI;
import java.net.URISyntaxException;
public class URLTest {
private static final String VICTIM = "https://localhost/app//page1//subpage1";
public static void main(String[] args) throws URISyntaxException {
URI uri = new URI(VICTIM);
System.out.println("before: " + uri);
uri = uri.normalize();
System.out.println("after: " + uri);
}
}
产出:
before: https://localhost/app//page1//subpage1
after: https://localhost/app/page1/subpage1
你可以试试这个
字符串值=”
字符串结果=value.replaceAll(“(/)”,“/”)
系统输出打印项次(结果) 向我们展示如何尝试使用durl.replaceAll(“//*”,“/”);这将使用single(上述列表中的第三种情况)更新//。我不知道如何修复1和2种情况您想替换所有/
,除了https:
before: https://localhost/app//page1//subpage1
after: https://localhost/app/page1/subpage1