Java正则表达式URL前缀删除

时间:2015-03-02 00:16:02

标签: java regex replace

我有一组网址。其中一些字符串www作为子字符串,其中一些没有。我需要删除每个URL中的前缀。 我尝试使用regexp的许多变体删除此前缀:

newStr = str.replaceAll("http://|http://www.", "");
newStr = str.replaceAll("^http://|http://www.$", "");
newStr = str.replaceAll("http://|http://www.", "");

其中str - 是输入的URL字符串,newStr是替换后的URL。 这些变体中的每一个仅替换http://前缀,但www.仍保留在结果中。我如何更改正则表达式以删除http://字符串以及http://www.字符串?

我知道我可以使用replaceAll()两次:

newStr = str.replaceAll("http://", "").replaceAll("www.", "");

但是,如何保持一个 replaceAll()并仅编辑 正则表达式?

2 个答案:

答案 0 :(得分:2)

newStr = str.replaceFirst("^(http://)?(www\\.)?", "");

请注意,正则表达式中的.表示您需要转义的任何内容,或者您​​将从wwwiscool.com中删除前4个符号,您可能不希望如此。而且您可能只想替换第一个匹配的前缀。

答案 1 :(得分:1)

您可以使用str.replace,例如:

String str = "http://www.google.com";
str.replace("http://","").replace("http:// www.","").replace("www.","");

有关str.replace

的详细信息