Java 正则表达式 URL 前缀删除

Java regex URL prefix removal

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

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() 并仅编辑 正则表达式?

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

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

有关str.replace

的更多信息
newStr = str.replaceFirst("^(http://)?(www\.)?", "");

请注意,正则表达式中的 . 表示任何含义,因此您需要将其转义,否则您将从 wwwiscool.com 中删除前 4 个符号,而您可能不希望这样。您可能只想替换第一个匹配的前缀。