Hallo zusammen, Ich suche gerade nach einem Regulären Ausdruck, der mir den Inhalt von einem String des Typs Key=value; zurückgibt, also z.B. in " blablabla Hund=Val1,Val2,Val3; bla bla fla" für das Schlüsselwort "Hund" den String "Val1,Val2,Val3". Andererseits sehr ich das als einen guten Grund, sich mal mit regulären Ausdrücken zu beschäftigen. Kennt jemand eine gute Einführung (gerne auch als gedrucktes Buch)? Viele Grüße W.T.
Beispielsweise http://www.oreilly.de/catalog/regex3ger/ oder http://www.oreilly.de/catalog/regexcbger/
Wenn Lookbehind & Lookahead erlaubt sind: (?<=Hund=)[^;](?=;) (?<=Hund=) Look behind -> Wenn vor dem Ausdruck Hund= steht [^;]* Alles außer ; matchen. Gibt auch "leere" Strings zurück, da * für 0 oder mehr steht. Alternativ wenn er keine leeren Strings matchen soll ein +, dann ist es 1 oder mehr Zeichen im String. (?=;) Lookahead. Wenn hinter dem Ausdruck ein ; ist Damit kannst du statt Hund deinen eigenen Key einsetzen und bekommst den String zurück. Aber bitte auch nachvollziehen warum.
:
Bearbeitet durch User
python,ruby,perl sind deine Freunde :) hier python
1 | >>> import re |
2 | >>> pattern = re.compile(r'(\w+)\s*=\s*(.+?);') |
3 | >>> pattern.findall("a=1; abcd x= 100; ") |
4 | [('a', '1'), ('x', '100')] |
hier wirst du gut geholfen ... https://docs.python.org/2/howto/regex.html
Habe gerade einen Denkfehler festgestellt. Es geht sogar noch kürzer, da er bei einem ; ohnehin stoppt. (?<=Hund=)[^;]*
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.