Entwickler-Ecke
Basistechnologien - mit Regex realisierbar?
BlackMatrix - Mo 21.02.11 16:29
Titel: mit Regex realisierbar?
Hi.
Ich möchte gerne mit Hilfe von Regex folgendes Problem lösen:
Ich habe verschiedene strings, die aus IDs,wilden Zeichen und evtl. mit "Kontostand: x" versehen sind.
z.B:
C#-Quelltext
1: 2: 3:
| "id=1/\/Kontostand: 9€" "id=12/\/Kontostand: -7€" "id=123/\//\/" |
Und nun will ich, dass sobald Kontostand im string vorkommt, er nur die nimmt, die nach dem
eine positive Zahl haben, ansonsten sollte er alle IDs nehmen.
Bisher habe ich immer mit if/else nach "Kontostand" abgefragt und dann unterschiedliche Regex verwendet.
bisher habe ich:
C#-Quelltext
1:
| string pattern = "id=\d+((?!id=).)*Kontostand: \d" |
Ich hoffe mir kann jemand helfen.
MfG BlackMatrix
Kha - Mo 21.02.11 17:02
Was ist denn so schlimm an if (!s.Contains("Kontostand: -")) :nixweiss: ? Auf deinen Regex kann ich nicht näher eingehen, weil mir der Teil ((?!id=).) nicht klar ist. In deinen Beispielen kommt id jeweils nur einmal vor?
bakachan - Mo 21.02.11 17:18
Was spricht denn gegen eine optionale Kontostand-Gruppe?
Quelltext
1:
| id=(?<id>[0-9]+)(\/\\/)+(Kontostand: (?<Kontostand>-?\d+)€)? |
(wenn negative Zahlen nicht mit drin stehen sollen einfach das -? entfernen)
BlackMatrix - Di 22.02.11 09:09
Kha hat folgendes geschrieben : |
Was ist denn so schlimm an if (!s.Contains("Kontostand: -")) :nixweiss: ? |
Er soll ja, sobald das Wörtchen "Kontostand" vorhanden ist, schauen, ob danach ein negativer Wert steht und diese ID nicht in die MatchCollection aufnehmen. Jede andere ID darf er aufnehmen, auch die, wo kein Kontostand steht. Wenn ich nun mit if/else trenne, dann muss ich 2 verschiedene pattern definieren, schöner wäre es natürlich, nur einen (etwas komplizierteren) zu haben. Ist das nicht möglich?
Kha hat folgendes geschrieben : |
Auf deinen Regex kann ich nicht näher eingehen, weil mir der Teil ((?!id=).) nicht klar ist. In deinen Beispielen kommt id jeweils nur einmal vor? |
Ich habe die strings etwas abgekürzt, unter den "wilden Zeichen" kann es auch vorkommen, dass zufälligerweise
id drin steht und um da auf Nummer sicher zu gehen, habe ich das so entwickelt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!