piątek, 14 września 2012

Wyrażenia regularne i RegExr

W pracy bardzo często przydaje się znajomość wyrażeń regularnych. Do tworzenia i testowania wyrażeń regularnych przydaje się świetny programik o nazwie RegExr. Można z niego skorzystać tutaj: http://gskinner.com/RegExr/ lub pobrać wersję desktopową z tego adresu: http://gskinner.com/RegExr/desktop/

A teraz kilka wyrażeń regularnych z wykorzystaniem w konkretnych metodach w C# :)

Metoda wyszukująca linki i podmieniająca je na znaczniki html:

public static string FormatURL(string str)
        {
            string url = string.Empty;
            Regex reg = new Regex("([^=\"<'])(http(s)?://([\\w+?\\.\\w+])+([a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9\\~\\!\\@\\#\\$\\%\\^\\&amp;\\*\\(\\)_\\-\\=\\+\\\\/\\?\\.\\:\\;\\'\\,]*)?)", RegexOptions.IgnoreCase);
            Match m = reg.Match(str);
            if (m.Groups[1].Value != "") url = m.Groups[2].Value;
            str = reg.Replace(str, "$1<a href=\"$2\" target=\"_blank\" rel=\"nofollow\">$2</a>");
            return str;
        }


Kolejny przykład to dwie funkcje, które umożliwiają formatowanie treści ze znacznikami bbcode na naszej stronie :)

Formatowanie znacznika bbcode dla cytatu:


public static string FormatCytatu(string str)
        {
            Regex reg = new Regex(@"(\[quote=([\w .-]*)\])", RegexOptions.IgnoreCase);
            str = reg.Replace(str, "<div class=\"quote_box\"><div style=\"margin: 5px;\"><b>$2 napisał(a):</b><br /><i>");
            str = str.Replace("[/quote]", "</i></div></div>");
            return str;
        }



Funkcja formatująca czcionkę:

public static string FormatCzcionki(string str)
        {
            Regex reg = new Regex(@"(\[color=([a-zA-Z]*)\])", RegexOptions.IgnoreCase);
            str = reg.Replace(str, "<font color=\"$2\">");
            str = str.Replace("[/color]", "</font>")
            return str;
        }



Brak komentarzy:

Prześlij komentarz