Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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!

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

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.

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.

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...
  • Autor

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.

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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.