Ca fait longtemps que j'ai pas posté sur le forum.
Bon alors j'ai un souci avec une fonction utilisant une regex pour remplacer une url en balise <a href=.....> etc.
Dans cette fonction, je cherche à trouver une chaine du genre et la transformer en
<a href="monurl">montexte</a>
ET, toujours dans le même bloc de texte, chercher les url pour les retranscrire en
<a href="monurl">monurl</a>
afin de la rendre cliquable.
cette deuxième partie fonctionne très bien. la première ne matche rien du tout et quand bien même j'y arriverais, je n'ai pour l'instant pas d'idée pour combiner les deux sans que la 2ème n'écrase le résultat de la première.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| public static string UrlReformate(string rawtext)
{
string result = "";
if (rawtext != null)
{
string re1 = @"^(?:\[\[.*\|(?:(?:\w+):\/\/(?:[\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,]*)\]\])$";
string re2 = @"(?:(?:\w+):\/\/(?:[\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,]*)";
Regex r1 = new Regex(re1, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Regex r2 = new Regex(re2, RegexOptions.IgnoreCase | RegexOptions.Singleline);
if (r1.Match(rawtext).Success)
{
result = r1.Replace(rawtext, delegate(Match m)
{
string[] match = m.Value.Split('|');
return "<a href='" + match[1] + "'>" + match[0] + "</a>";
});
}
else
result = r2.Replace(rawtext, delegate(Match m)
{
return "<a href='" + m.Value + "'>" + m.Value + "</a>";
});
}
return result;
} |
Texte d'essai :
1 2 3 4
| test
ceci est un texte de test
[[cliquer ici|http://www.google.fr]], pour ouvrir Google. |
Partager