私はテキスト[LINK REMOVED FROM EVIDENCE AT REQUEST OF TRIAL JUDGE]
テキスト入力からのハイパーリンクをサニタイズするより良い方法はありますか?
public String overwriteLinks(String text){
final String OVERWRITE_WITH = "[LINK REMOVED FROM EVIDENCE AT REQUEST OF TRIAL JUDGE]";
List<String> checkForPatterns = Arrays.asList(
"http://", "www", ".com", ".net",
".org", "dot com", "dot net");
StringBuilder re = new StringBuilder();
for (String checkForPattern : checkForPatterns){
if (re.length() > 0)
re.append("|");
String quotedSite = Pattern.quote(checkForPattern);
re.append(quotedSite);
}
Pattern p = Pattern.compile(re.toString(),Pattern.CASE_INSENSITIVE);
text = p.matcher(text).replaceAll(OVERWRITE_WITH);
return text;
}
に置き換える、与えられたテキストから任意のハイパーリンクを削除し、ハイパーリンクのように見える任意の断片を上書きしようとしているリンクの数を最大化するためにこれを行うには良い方法はありますそれは削除されますか?最高の私の正規表現のスキルはiffyです。
+1 3986パターンを使用しています。グループ1にはプロトコルが含まれ、グループ4には権限が含まれていることに注意してください。これは、おそらくリンクではない有効な相対URLをフィルタリングする良い方法です。たとえば、 'the'や' a'は有効な相対URLです。 –
ええ - それを解析して検証するためにこれを使用するので、グループはURLの有用な部分を表す必要があります。頭にhttp(s)://を要求するように簡単に変更できます。 – sarumont