webForumDet fria alternativet

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

2 svar · 318 visningar · startad av Lukaspojken

LukaspojkenMedlem sedan maj 20011 312 inlägg
#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?

voigtann1Medlem 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.

LukaspojkenMedlem sedan maj 20011 312 inlägg
#3

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

127 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)