Hallo zusammen,
ich habe eine string Variable, die ca. 200 HTML Zeilen beinhaltet. Wie kann ich in diesem String nach einem Muster suchen, das mehrmals in diesem String vorkommt? Ich möchte anschließend ein Teil von diesem Muster filtern und in ein StringBuilder oder in eine Datei speichern.
Zum Beispiel:
Die String Variable beinhaltet n „username“, die ich filtern möchte:
Text bla bla {"username": "Mueller"} bla bla
Text bla bla {"username": "Meyer"} bla bla
Text bla bla {"username": "Becker"} bla bla
Wie bekomme ich nun so eine Liste?
Mueller
Meyer
Becker
Vielen Dank im Voraus.
Das geht mit Regular Expressions.
Leider bin ich kein RegEx-Profi, um dir mal schnell ein Beispiel hinzubasteln, aber da kann sicher gleich jemand anderes helfen. =)
Regex wurde schon genannt (evtl. auch mit LINQ)
Ein Beispiel zur Güte: https://www.codeproject.com/Articles/93804/Using-Regular-Expressions-in-C-NET
Im konkreten Fall den Text extrahieren, der zwischen den " " steht und nicht "username" heisst.
Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉
Dank für den Link.
Ich habe vorhin mit
Regex reg = new Regex(@"/ {.username.: /g");
probiert, aber ohne Erfolg. Ich glaube, dass das Ganze etwas komplizierte ist, als ich gedacht habe.
Das sieht auch nicht nach einem gültigen Regex-String aus.
Zeichen wie {} oder . und viele andere haben spezielle Bedeutungen in Regex. Soll diese Bedeutung nicht genutzt werden, muss sie escaped werden.
Ebenso fehlt Deinem Regex auch das entsprechende matchende Element.
"Rumstochern" ist in der Entwicklung nie eine gute Idee.
In Regex kann das sogar einfach nur fatal sein.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ich muss mit Regex irgendwie {"username": "Mueller"}, die auch mehrmals in diesem string vorkommt auslesen und anschließend mit substring den User filtern. Mir fällt nur der Regulärer Ausdruck.
Gibt es ein online Regex Generator? Man gibt das Suchmuster ein und der Generator generiert den Ausdruck.
Generatoren? Nein, aber Tools wie es Dir p!lle genannt hat.
Du musst Dich hier mit Group Capturing und Regex Escape beschäftigen, da {} besondere Zeichen in Regex darstellen.
Zudem hat Dein Regex string überhaupt kein Capturing. Es wird also nichts gesucht oder gematched.
Nen bisschen was durchlesen muss man schon, wenn man was Neues nutzen will 😉
Zudem ist /g das Global Flag in PHP.
Das wird so in .NET nicht funktionieren.
Davon abgesehen, dass das Forum auch kein Regex-Generator darstellt, hast Du nichts gelernt, wenn wir Dir einfach den Regex-String basteln.
Da wäre der Sinn des Forums völlig dahin.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Der Vollständigkeitshalber: