02. august 2008 - 21:35Der er
7 kommentarer og 1 løsning
Regex replace
Hej eksperter,
Jeg har en tekst fra et CMS system:
string text = "Lorem ipsum dolor {currency} sit amet, consectetuer adipiscing elit. Quisque et sem {language} ullamcorper est consequat porta.";
Bemærk de to placeholders der er placeret i teksten i form af tuborgklammer.
Jeg vil gerne i en meget elegant løsning for hver match af en sådan placeholder udskifte indholdet med string Content.Get(string key) sådan at de rigtige værdier indsættes ud fra nogle kriterier som denne metode tester for.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
using System; using System.Collections.Generic; using System.Text.RegularExpressions;
namespace E { public class Program { public static string XReplace(string s, Dictionary<string, string> rpl) { string res = s; Regex re = new Regex("{([^}]+)}", RegexOptions.Compiled); foreach(Match m in re.Matches(s)) { res = res.Replace(m.Groups[0].Value, rpl[m.Groups[1].Value]); } return res; } public static void Main(string[] args) { string text = "Lorem ipsum dolor {currency} sit amet, consectetuer adipiscing elit. Quisque et sem {language} ullamcorper est consequat porta."; Dictionary<string, string> rpl = new Dictionary<string, string>(); rpl.Add("currency", "DKK"); rpl.Add("language", "Danish"); rpl.Add("foo", "bar"); Console.WriteLine(text); Console.WriteLine(XReplace(text, rpl)); Console.ReadKey(); } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.