Regex zwischen einem Wort und einem Zeilenumbruch?
Hallo zusammen,
kenne mich noch nicht gut mit Regex aus.
Könnt ihr mir sagen, wie ich aus folgendem String per Regex den Wert hinter Product Type auslesen kann:
Legal Entity: Zurich
Project Type: Permanent
Monthly Fee: 180€
3 Antworten
Dafür brauchst Du ein Werkzeug, das das tut:
https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck
Welche Werkzeuge / Sprachen / Tools / Programme willst Du denn verwenden?
Bitte bringe auch ein Beispiel, was Du genau als Ergebnis haben möchtest.
Typischerweise würde man
- nach dem ersten Vorkommen eines Zeichens suchen (also etwa der Doppelpunkt)
- die Stelle davon abspeichern (als z.B. 13)
- die linke Seite des Ausdrucks wegschneiden (von "Project Type: Permanent" wird geschnitten "Project Type:" und es bleibt " Permanent"
- von dem verbleibenden Rest die Leerzeichen vorne und hinten wegschnipseln
Bei mir geht Folgendes:
Project Type: ([A-z]*)\n
Getestet hier: https://regex101.com/
Oder so:
Project Type: (\w*)\n
Vermutlich fehlt hier noch ein Zeilenumbruch vor dem Ausdruck.
(Oder die Formatierung hat ihn verschluckt - mal ausprobieren:
\n\s*Project\s?Type:s*(\w*)\s*\n
)
Dann sollte man aber auch die Regex-Optionen auf multiline stellen.
Kommt auf die Programmiersprache an, die du verwendest.
In Javascript sollte z.B. folgendes funktionieren:
/.*Project Type:(.*\n)/g
In anderen Sprachen sieht es Ähnlich aus.
Für den Zeilenumbruch findest du evtl. noch schönere Varianten, die verschiedene Zeilenumbrüche abdecken.
Je nachdem, wie komplex RegExes werden, sind sie irgendwann auch für RegEx-Wizards write only.
Das Thema taucht regelmäßig bei thedailywtf auf.
ich gebe Dir ein hilfreich, weil es richtig aussieht.
Doch für einen Anfänger ist das "write only".