Probleme mit RegularExpressions

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Transmitter
User
Beiträge: 24
Registriert: Mittwoch 24. November 2004, 02:23

Hi

Ich suche in einem String einen String, der ungefähr so aussehen kann:

[-Buchstaben-]
oder auch
[Buchstaben.undZahlen]

Ich probiere es mit
[a-zA-Z0-9_[]-]*

Leider wird der String nicht gefunden :(

Was mache ich denn falsch?
Was anderes auslesen klappt ohne Probleme, nur wenn der String bzw. die RE ein - oder [ oder ] oder sowas enthält, dann klappt es nicht :(

Danke schon mal
Bye, Transmitter
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi

Eckige Klammern sind Teil der Regulären Ausdrücke. Also mußt Du mit sog. Escape-Sequenzen arbeiten, z. B. [\w\[\]]. Das könnte u. U. der Ausdruck sein, den Du suchst, aber leider habe ich nicht genau verstanden welchen Ausdruck Du brauchst, wenn es mit dem Tipp und dem Beispiel nicht klappt gib doch man ein konkretes Beispiel.

Gruß,
Christian

PS Du versuchst nicht zufällig Windows-INI Dateien zu parsen?
Transmitter
User
Beiträge: 24
Registriert: Mittwoch 24. November 2004, 02:23

Danke schon mal für deine Antwort.

Nein, es geht nicht um die Win ini, ich muss einen Intranet Katalog parsen und in eine DB schreiben, das muss über das html Frontend funktionieren.

Ich habe z.B. folgendes:

vawevysef[-Pos1-]av drg
und
rarvoeyytyvye[Pos1.1]yvbny

Was ich haben will ist im ersten Fall:
[-Pos1-]
und im 2. Fall
[Pos1.1]

Mein RA sieht jetzt so aus:
[\w\[\]-]*
aber gefunden wird das leider immer noch nicht :(
Kann ich nicht nach
[ gefolgt von x Zeichen und ]
suchen, und das dann gleich speichern?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Entspricht das Deinen Vostellungen?

Code: Alles auswählen

import re
s = ['vawevysef[-Pos1-]av drg','rarvoeyytyvye[Pos1.1]yvbny']

p = re.compile('\[-?[\w.]*-?\]')

for x in s:
	m = p.search(x)
	print m.span()
	print m.group()
Gruß,
Christian
Transmitter
User
Beiträge: 24
Registriert: Mittwoch 24. November 2004, 02:23

Ja .. das ist schon besser als meine Version :)

Danke dir
Antworten