Entwickler-Ecke
Basistechnologien - [RegEx] nur einen Teilstring als Ausgabe
mmp5 - Mo 10.05.10 17:04
Titel: [RegEx] nur einen Teilstring als Ausgabe
Ich habe folgenden String:
"Mein Vater hat 24.0€ in der Tasche, er hat 19.0% MWST aufgeschlagen und einer möchte noch 19.0L Wasser haben"
Ich muss mit einem RegExPattern Teile von der 19.0% MWST herausfiltern, ich möchte als rückgabe nur 19.0 haben.
Man könnte mittels \d\d\.\d% und dann das % zeichen z.B. mittels Replace löschen ... ich muss das aber alles in einem Regulären ausdruck schaffen
Gibt es keine Möglichkeit, welche sagt finde dieses Pattern gib aber nur ein Teil davon als ergebnis zurück?
z.B: (\d\d\.\d)% und alles was innerhalb der Klammer ist, soll als Ergebnis zurückgeliefert werden ?!?!
Kha - Mo 10.05.10 17:22
mmp5 hat folgendes geschrieben : |
| z.B: (\d\d\.\d)% |
Genau das. Mit
match.Groups[1] kommst du dann an den Wert, der vom ersten Klammerpaar gematcht wurde.
danielf - Di 11.05.10 08:52
Hallo,
.NET bietet auch die Möglichkeit von benannten Groups. Über diese kannst du dann im Match Objekt mittels match.Groups["Betrag"].Value oder match.Groups["Mwst"].Value darauf zugreifen. Das finde ich persönlich sicherer, weil die stelle der Gruppe kann sich ja mal ändern. Des Weiteren finde ich match.Groups["Mwst"].Value sprechender als match.Groups[2].Value.
Benannte Gruppen erstellt man mit der syntax (?<name><pattern>). Bei deinem Beispiel also (?<Mwst>\d\d\.\d)%
Bzw. falls die Mwst mal wieder unter 10% geht solltest du das Pattern entweder mit \d{anzahl} oder die erste Stelle optional machen ( \d? ).
Gruß
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!