Possible en double:
Get a URL from a Stringget url de chaîne
Salut, im essayant d'extraire une URL à partir d'une chaîne à l'aide regexp. la chaîne est quelque chose comme: "lorem ipsum bébé www.test.com lorem", "lorem ipsum http://www.test.com foo bar" ou "lorem www.test.com" sans espaces de fin.
en utilisant
MatchCollection ms = Regex.Matches(adress, @"(www.+|http.+)([\s]|$)");
renvoie la chaîne entière. Est-ce qu'un regexp-guru pourrait m'aider sur celui-ci?
Edit:
Résolu cette façon:
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();
Merci à tous pour votre aide! :)
Si vous recherchez ** TRÈS ** primitif: '((?: Https?: \/\/| Www | [^ \ s] + \. [Az] {2,3}) [^ \ s] *?) [\. \?;:]? 'devrait fonctionner. Mais vous aurez besoin d'une regex très longue pour éliminer tous les méta-caractères qui pourraient entourer les URL, ou être à l'intérieur d'eux, etc. –
Cet endroit tourne-t-il sur sa tête? –
avec le nombre de personnes qui veulent une regex pour correspondre à une URL, microsoft devrait faire une bibliothèque standard d'expressions communes et le mettre dans le cadre .NET quelque part. Je pense que ce serait cool de faire juste 'Url.Matches (adresse)' ou 'Guid.Matches (@string)' ou 'DateTime.Matches (@string)' – kelloti