我有一组网址。其中一些将字符串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()并仅编辑正则表达式?

最佳答案

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


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

10-07 12:21
查看更多