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

.NET

2 svar · 334 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Trådstart#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...

369 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
118 ms — deklarationer (db)
119 ms — hämta statistik (db)
129 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)