0

文字列から URL を取り出し、後でそれを使用してハイパーリンクを作成しようとしています。次のことができるようにしたいと思います: - 入力文字列に URL が含まれているかどうかを判断する - 入力文字列から URL を削除する - 抽出した URL を後で使用するために変数に保存する

誰でもこれで私を助けることができますか?

4

2 に答える 2

3

次のような一般的な形式の URL を認識するための優れたソリューションを次に示します。

  • www.google.com
  • http://www.google.com
  • mailto:somebody@google.com
  • someone@google.com
  • www.url-with-querystring.com/?url=has-querystring

使用される正規表現は次のとおりです。

/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/

ただし、 http://blog.mattheworiordan.com/post/13174566389/url-regular-expression-for-links-with-or-without-theにアクセスして実際の例を確認することをお勧めします。

于 2013-03-20T18:37:34.433 に答える
0

入力を自分の入力に置き換えます

        string input = string.Empty;
        var matches = Regex.Matches(input,
                      @"/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)/");
        List<string> urlList = (matches.Cast<object>().Select(match => match.ToString())).ToList();
于 2013-03-20T18:47:36.693 に答える