ビジネスチャット、ビデオ通話、文書管理、スケジュールを統合。IP Messenger 互換。基本無料!

Java 文字列内のURLをリンクに変換

Java 正規表現を利用し文字列内のURLリンク(a href=…)に変換

Javaで文字列内のURLを、正規表現を使用し、リンク(a href=…)に変換するサンプルソースです。

 お勧めフリーソフト

当サイトで公開している Chat&Messenger は 10年以上の実績がある基本無料の国産ビジネスチャットツールです。ユーザを自動認識して直ぐにチャット、テレビ会議、スケジュール管理などが無料で利用できます。(Windows / Mac / Android / iOS)

ソースコード

/** URLを抽出するための正規表現パターン */
public static final Pattern convURLLinkPtn = 
    Pattern.compile
    ("(http://|https://){1}[\\w\\.\\-/:\\#\\?\\=\\&\\;\\%\\~\\+]+",
    Pattern.CASE_INSENSITIVE);

/**
 * 指定された文字列内のURLを、正規表現を使用し、
 * リンク(a href=...)に変換する。
 * @param str 指定の文字列。
 * @return リンクに変換された文字列。
 */
public static String convURLLink(String str) {
    Matcher matcher = convURLLinkPtn.matcher(str);
    return matcher.replaceAll("<a href=\"$0\">$0</a>");
}

実行結果

◆実行例
public static void main(String[] args) {
    // 単純なパターン
    String ret1 = convURLLink("https://chat-messenger.com/");
    System.out.println(ret1);

    // 文字列中に複雑なURLが組み込まれているパターンでも対応できます。
    String ret2 = convURLLink("こんにちは。" +
            "http://aaa.co.jp/sup/topic.py?dep_id=108&~id=108" +
            "ここのURLにアクセスしてね。");
    System.out.println(ret2);
}
◆出力結果
<a href=”https://chat-messenger.com/”>https://chat-messenger.com/</a>

こんにちは。<a http://aaa.co.jp/sup/topic.py?dep_id=108&~id=108″>http://aaa.co.jp/sup/topic.py?dep_id=108&~id=108</a>ここのURLにアクセスしてね。