我有一组网址。其中一些将字符串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个符号,并且可能不希望这样做。您可能只想替换第一个匹配的前缀。