文中のあらゆる種類の URL を検出して削除することはできますか?
例えば:
今日は天気が寒いですが、出かけたいです。http://weathers.com.....そしてお茶を飲みます...
なるべき
今日は天気が寒いですが、出かけたいです。そして私はお茶を飲みます...
マッチングプロセスをどの程度包括的にしたいかによって異なります。次のような単純なものを使用して試すことができます
str.replaceAll("http://[^\\s]+", "")
例えば
System.out.println("Today,wheather is cold.But I want to out. "
+ "http://weathers.com..... And I will take a cup of tea..."
.replaceAll("http://[^\\s]+", ""));
今日は天気が寒いですが、出かけたいです。そして私はお茶を飲みます...
有効な URL に一致するより堅牢なものが必要な場合は、より完全な URL 正規表現を使用します。
/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \.-]*) *\/?$/
さらに完全なマッチングについては、この回答を参照してください。
以下の正規表現を試してください
((http|ftp|https):\/\/)?[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
あなたの有効なURL
コードと次のコードを一致させるために、あなたが望むこと:
String str = "Today,wheather is cold. But I want to out. http://weathers.com..... And I will take a cup of tea";
String regularExpression = "(((http|ftp|https):\\/\\/)?[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?)";
str = str.replaceAll(regularExpression,"");
System.out.println(str);
編集:
ただし、この正規表現は、すべてのタイプの URL に一致する完全な正規表現を見つけるのが非常に複雑で難しいため、すべてのタイプの URL で機能するとは限りません。