をURLを取得する可能性の重複:正規表現を使用して文字列からURLを抽出しようとしている
Get a URL from a String文字列から
こんにちは、イム。文字列は、 "lorem ipsum baby www.test.com lorem"、 "lorem ipsum http://www.test.com foo bar"、または "lorem www.test.com"のようなものです。
使用
MatchCollection ms = Regex.Matches(adress, @"(www.+|http.+)([\s]|$)");
は文字列全体を返します。 regexp-guruが私にこのことを助けてくれますか?
編集:
はこのようにそれを解決:
MatchCollection mc = Regex.Matches(adress, @"(www[^ \s]+|http[^ \s]+)([\s]|$)", RegexOptions.IgnoreCase);
adress = mc[0].Value;
WebBrowserTask task = new WebBrowserTask();
task.URL = adress;
task.Show();
はあなたの助けありがとうございました! :)
** VERY **プリミティブ:((?:https?:\/\/| www | [^ \ s] + \。[az] {2,3})[^ \ s] *?)[\。\?;:]? 'は動作するはずです。しかし、URLを囲む可能性のあるすべてのメタキャラクタを排除するために、非常に長い正規表現が必要です。 –
この場所は先頭に立っていますか? –
正規表現がURLにマッチするようにする人の数が増えれば、microsoftは共通の式の標準ライブラリを作成し、どこかの.NETフレームワークに置くべきです。 'Url.Matches(address)'や 'Guid.Matches(@string)'や 'DateTime.Matches(@string)'を行うのはクールだと思う。 – kelloti