Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > ASP.NET 1.x och 2.x > Språk - C#

Replace med RegExp

Hejsan, har precis gått över till .Net och ska byta ut radbrytningar och diverse BBCoderna till HTML och jag undrar hur jag gör detta lättast.

Jag vill ju ha en void eller liknande som sköter allt.

Det jag har nu är.

<%#  Server.HtmlEncode(Eval("blogText").ToString()).Replace(Environment.NewLine, "<br />")%>

Men som sagt vill jag ha det i en void, men har absolut inte en aning om hur jag ska göra.

Edvin Lindén, http://edvinlinden.se
ID: #11885 | Skapades: 2008-08-26 17:43:00 | Tråden har 14 svar och har lästs 848 gånger.

Timmie
Timmie

Gradering

#11886

Något liknande detta kanske?

public static string RegEx(string text)
{
    text = System.Web.HttpContext.Current.Server.HtmlEncode(text);
    text = text.Replace(System.Environment.NewLine, "<br />");

    return text;
}



Redigerad av Padchi
Anledning: Glömde return

ID: #11886 | Skapades: 2008-08-26 17:48:06

voigtan
voigtan

Gradering

#11887

void = sub => Event, vilket inte retunera någon data, det är som Padchi skriver, du skall göra det i en vanlig funktion eller en static funktion om du inte vill instansera den.

newline, vbcrlf som man är van vid i klassisk ASP är inte RegExp, = nyrad i regexp,

att använda regexp i c#:

string resultString = null;
try {
    resultString = Regex.Replace(subjectString, "RegExpPattern", "ReplaceValue", RegexOptions.IgnoreCase | RegexOptions.Multiline);
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #11887 | Skapades: 2008-08-26 17:54:00

Aha tackar för det!

Men om jag tex vill ha detta till HTML

[img src=Länk title=Rubrik]

Hur ska jag plocka ut det i .Net, dvs få fram "Länk" och "Rubruk" så att jag kan använda dem i HTML sedan.?

Edvin Lindén, http://edvinlinden.se
ID: #11888 | Skapades: 2008-08-26 17:54:21

voigtan
voigtan

Gradering

#11890

regexp mönstret:

\[img src=([^]+) title=([^\]]+)\]

Men då får inte src innehålla ett mellanslag.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #11890 | Skapades: 2008-08-26 18:11:32

Jag får detta felet när jag änvänder den koden.

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS1009: Unrecognized escape sequence



public string RegExStr(string text)

    {

        text = System.Web.HttpContext.Current.Server.HtmlEncode(text);

        text = text.Replace(System.Environment.NewLine, "<br />");

        try

        {

            text = Regex.Replace(text, "\[img src=([^]+) title=([^\]]+)\]", "<a href='$1' title='$2' rel='lightbox[" + DateTime.Today + "]'><img src='$1' onload='resizeImg(this);' /></a>", RegexOptions.IgnoreCase | RegexOptions.Multiline);

        }

        catch (ArgumentException ex)

        {

            // Syntax error in the regular expression

        }

        

        return text;

    }


 

Edvin Lindén, http://edvinlinden.se
ID: #11896 | Skapades: 2008-08-26 21:33:50

voigtan
voigtan

Gradering

#11897

du har inget mellanslag vid src=([^ ]+) byt den till ([^\s]+) istället eftersom wysiwyg editorn verkar klippa den.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #11897 | Skapades: 2008-08-26 21:37:11

Jag får fortfarande samma fel.

VWD klagar på "\[img src=([^\s]+) title=([^\s]+)\]".

Har inte den minsta koll på detta med RegEx så är tacksam för hjälp!

Edvin Lindén, http://edvinlinden.se
ID: #11898 | Skapades: 2008-08-26 21:58:56

voigtan
voigtan

Gradering

#11899

uttrycket är rätt. skall det inte vara typ  @ framför "sträng" sak i c# när det



Redigerad av voigtan
Anledning:

string resultString = null;
try {
    resultString = Regex.Replace(subjectString, @"\[img src=([^\s]+) title=([^\s]+)\]", "<a href=$1' title='$2' rel='lightbox[\" + DateTime.Today + \"]'><img src='$1' onload='resizeImg(this);' /></a>", RegexOptions.IgnoreCase | RegexOptions.Multiline);
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #11899 | Skapades: 2008-08-26 22:06:58

Timmie
Timmie

Gradering

#11900

Voigtan: Jo det ska det.
Så det rätta är @"\[img src=([^\s]+) title=([^\s]+)\]"

ID: #11900 | Skapades: 2008-08-26 22:10:12

Jo du hade rätt.

Men det byts fortfarande inte ut till den koden jag ville till. Någon ide?

Edvin Lindén, http://edvinlinden.se
ID: #11901 | Skapades: 2008-08-26 22:11:14

voigtan
voigtan

Gradering

#11902

Vad är det för text du försöker då?



Redigerad av voigtan
Anledning:

string resultString = null;
try {
    resultString = Regex.Replace(subjectString, @"\[img src=([^\s]+) title=([^\s]+)\]", "<a href=$1' title='$2' rel='lightbox[\" + DateTime.Today + \"]'><img src='$1' onload='resizeImg(this);' /></a>", RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline);
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}
fungera för mig med test strängen: "hej på dig [img src=asd title=asd] test"

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #11902 | Skapades: 2008-08-26 22:12:35

Nu testade jag med

hej på dig [img src=http://its-time.se/upload/skrivbord2008.jpg title=Skrivbordsbakgrunden just nu.] test

hej på dig [img src=asd title=asd] test

 

Det fungerade med din text men inte med min.



Redigerad av Evl
Anledning:

Edvin Lindén, http://edvinlinden.se
ID: #11903 | Skapades: 2008-08-26 22:31:54

voigtan
voigtan

Gradering

#11904

eftersom du har ändrat mitt orginal uttryck.

\[img src=([^\s]+) title=([^\]]+)\]
det var bara i början du skulle ersätta vanligt " " med \s.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #11904 | Skapades: 2008-08-26 22:35:42

Ah! Tackar! Bra att det finns folk som kan sakerna bättre än mig ;)

Edvin Lindén, http://edvinlinden.se
ID: #11905 | Skapades: 2008-08-26 22:40:32
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy