Seite 1 von 1

Probleme mit RegularExpressions

Verfasst: Samstag 21. Mai 2005, 14:57
von Transmitter
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

Verfasst: Samstag 21. Mai 2005, 16:13
von CM
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?

Verfasst: Samstag 21. Mai 2005, 16:21
von Transmitter
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?

Verfasst: Samstag 21. Mai 2005, 16:41
von CM
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

Verfasst: Samstag 21. Mai 2005, 16:50
von Transmitter
Ja .. das ist schon besser als meine Version :)

Danke dir