Entwickler-Ecke

Basistechnologien - Regular Expression


Fujitsufan - Di 06.11.18 16:08
Titel: Regular Expression
Hallo,

momentan versuche ich die "Regular Expression" anzuwenden.
Ich möchte in einem String innerhalb 2 Zeichen "{}" einen Text erkennen und diesen zurückgeben.

In meinem String "strTemp" ist folgendes drin:
<>mm{0.00##}

Mein RegEx Ausdruck lautet:
[{+[0-9.0-9#]+}]

Hier die Syntax dazu:

C#-Quelltext
1:
2:
strTemp = "<>mm{0.00##}";
Match m = Regex.Match(strTemp, "[{+[0-9.0-9#]+}]");


Doch leider bleibt meine Variable "m" leer bzw. enthält nur
die Zeichen '{' und '}'.
Eigentlich hatte ich folgendes erwartet:
"{0.00##}"

Vielen Dank.
Fujitsufan.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Di 06.11.2018 um 15:41


Glowhollow - Di 06.11.18 16:18

du könntest auch eine for schleife konstruieren in denen du die char[index] abfrägst, und guckst, ob das { ist oder }. Dann setzt du zwei variablen, mit start und endposition und schneidest das dann aus dem string aus. Voila fertig.

Klar geht mit regexp auch.

Edit. gerade deine RegExp getestet. Die gibt auch nichts zurück. Da mußt du nochmal ans reißbrett. :)

P.S. nutze https://regex101.com/ zum testen deiner reg exp


Th69 - Di 06.11.18 16:40

Wofür die eckigen Klammern zu Beginn und Ende?
Nimm "{+[0-9.0-9#]+}".

Verkürzt reicht auch "{[0-9.#]+}".


Stephan74656 - Mi 07.11.18 09:57

Hier kannst du deinen RegEx testen.
https://regex101.com/

Anleitungen und Erklärungen, sowie Tipps und Tricks gibt es auf
https://www.rexegg.com/
(Ich weiß, ist Englisch, aber gut gemacht)

Stephan74656