Mr. Tommes Geschrieben 21. Mai 2010 Teilen Geschrieben 21. Mai 2010 Hallo zusammen, habe folgendes Problem: Ich habe mehrere strings, die unterschiedlichen Text enthalten. Unter anderem haben die strings Platzhalter die folgendermaßen aussehen: %xxx% Es kann vorkammen, dass in einem String auch mehrere Platzhalter sind: z.B. "Dies ist der String mit dem Namen %name% und der Nummer %nr%." Jetzt will ich den String auf die Platzhalter überprüfen und diese in ein DatagridView schreiben. Hat jemand eine Idee, wie ich jetzt %name% und %nr% rausfiltern kann?? Vielen Dank! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pointerman Geschrieben 21. Mai 2010 Teilen Geschrieben 21. Mai 2010 Moin! Die RegEx "([%])[^%]*\1" sollte Dir die entsprechenden Tags rausfiltern. Viel Erfolg! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lilith2k3 Geschrieben 21. Mai 2010 Teilen Geschrieben 21. Mai 2010 Alternativ: [%]([^%]+)[%] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rookian Geschrieben 24. Mai 2010 Teilen Geschrieben 24. Mai 2010 In C# gibt es schon Platzhalter. Bsp.: string resource = "Dies ist der String mit dem Namen {0} und der Nummer {1}."; Nun willst du das ganze ausgeben: Console.WriteLine(String.Format(resource, "Müller", 1); Gaanz einfach ohne Regex =) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 24. Mai 2010 Teilen Geschrieben 24. Mai 2010 Hat nur nix mit der Fragestellung zu tun... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rookian Geschrieben 24. Mai 2010 Teilen Geschrieben 24. Mai 2010 Hat nur nix mit der Fragestellung zu tun... durchaus aber womöglich weiß der jenige nicht, dass es diese Funktionalität gibt und er legt eigene Platzhalter in Resourcen an, was umständlich wäre. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lbm1305 Geschrieben 25. Mai 2010 Teilen Geschrieben 25. Mai 2010 durchaus aber womöglich weiß der jenige nicht, dass es diese Funktionalität gibt und er legt eigene Platzhalter in Resourcen an, was umständlich wäre. Ich glaube nicht, dass der Themenersteller diese Strings inkl. dem Platzhalter selber erstellt. Es gibt genug anderen Formate / Verfahren, die z.B. das Prozentzeichen als Platzhalter nutzen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rookian Geschrieben 26. Mai 2010 Teilen Geschrieben 26. Mai 2010 Ich glaube nicht, dass der Themenersteller diese Strings inkl. dem Platzhalter selber erstellt. Es gibt genug anderen Formate / Verfahren, die z.B. das Prozentzeichen als Platzhalter nutzen. Summa summarum wissen wir nicht was der Threadersteller genau macht :hells: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mr. Tommes Geschrieben 7. Juni 2010 Autor Teilen Geschrieben 7. Juni 2010 Hallo, hier ist der Threadersteller. Sorry, wenn ich jetzt erst antworte, hatte zwischenzeitlich ein anderes Problem gehabt. Also ich hab folgendes mal getestet: // Define a regular expression for currency values. System.Text.RegularExpressions.Regex rx = new System.Text.RegularExpressions.Regex(@"[%]([^%]+)[%]"); // Define some test strings. string[] zeile1 = { "-42", "es geht um %19.99% siehst du", "%ertge%", "0.001", "100 USD" }; // Check each test string against the regular expression. foreach (string test in zeile1) { if (rx.IsMatch(test)) { Console.WriteLine("{0} is a currency value.", test); } else { Console.WriteLine("{0} is not a currency value.", test); } } Leider wird die ganze Zeile als Ergebnis ausgegeben, also "es geht um %19.99% siehst du" und "%ertge%" kommt als Ergebnis raus. Das ist ja schon mal ein Teilerfolg, aber ich brächte nur "%19.99% und "%ertge%". Um die Problemstellung nochmal darzustellen: Ich habe einen Text, wo ich selber Platzhalter habe. Wie z.B. "Der Name des Mitarbeiters in Abteilung %abt% ist %name%." Jetzt möchte ich, dass mir %abt% und %name% in einem Datagrid angezeigt wird. Platzhalter sind variabel und zeichnen sich durch die Prozentzeichen %xxx% aus. Ich möchte also alles in einem String auslesen was mit %-Zeichen umklammert ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pointerman Geschrieben 7. Juni 2010 Teilen Geschrieben 7. Juni 2010 Moin! Haettest Du die RegEx, die ich in der ersten Antwort geschrieben habe verwendet, dann haette es funktioniert. Ich habe Deinen Text: "Der Name des Mitarbeiters in Abteilung %abt% ist %name%." mit der o.g. Regex ([%])[^%]*\1 auf dieser Seite regexe - Reguläre Ausdrücke online testen ausprobiert und habe %abt% und %name% als Ergebnisse bekommen. Mit der alternativen Expression in der Nachricht nach mir hat es nur das erste Element gegeben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.