Zum Inhalt springen

C# - Platzhalter in string ermitteln


Empfohlene Beiträge

Geschrieben

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!

Geschrieben

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 =)

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

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

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

:rolleyes: Summa summarum wissen wir nicht was der Threadersteller genau macht :hells:

  • 2 Wochen später...
Geschrieben

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.

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...