webForumDet fria alternativet

[b]Text[/b] till <b>Text</b>

.NET

2 svar · 318 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Jag har en text i ett webbformulär där användaren kan lägga in tex taggarna för att erhålla fetstilt i det som sedan visas. Jag hittade regular expression för att finna det som är fetstilt men jag är osäker på hur själva ersättningen (replacen) ska se ut.

Koden ser ut så här i dagsläget:

string pattern = @"\[b\](.*?)\[/b\]";
Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
string input = "Start[b]Text[/b]SLUT";
string output = rgx.Replace(input, @"<b>[a-zA-Z0-9._/ ]+\</b>");

Resultatet man får ut är "Start<b></b>SLUT" men det korrekta resultatet ska vara "Start<b>Text</b>SLUT". Hur lyckas jag få till det? Är replace-metoden fel väg för att uppnå detta?

Medlem sedan juni 20019 519 inlägg
#2
string pattern = @"\[b\](.*?)\[/b\]";
Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
string input = "Start[b ]Text[ /b]SLUT";
string output = rgx.Replace(input, @"<b>[b]$1[/b]</b>");

Du vill hämta ut grupp 1, dvs allt som är .*? i ditt uttryck.

Medlem sedan maj 20011 312 inlägg
#3

Supertack! Det är lite lurigt med regular expression ibland...

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)