Habe mich mal ein wenig reingelesen in das re-Modul. Im konkreten geht es darum in einer Datei einen bestimmten String zu finden und zwar '\\NImag='. Dabei kann - muß aber nicht- dieser String, wie bereits oben erwähnt durch einen Zeilenumbruch '\n' unterbrochen sein. Ich habe jetzt folgenden Code
Code: Alles auswählen
import re
string = '\\\\Nab=c\\\n\\NImag=3\\\\Na=7'
print string
c = re.search(r'\.*=', string, re.S)
print string[c.end()]
Den string habe ich dabei etwas erweitert um falsche Suchergebnisse auszuschließen. So wie jetzt gesucht wird, druckt er mir aber das 'c' statt der gewünschten '3' aus. Daraufhin hatte ich mir überlegt, die Zahl der der zwischen '\' und '=' vorkommenden Zeichen zu begrenzen:
also mindestens 6 Zeichen '\NImag' und maximal 7 Zeichen '\N\nImag' beispielsweise, wobei '\n' ein Zeichen ist, wenn ich das richtig interpretiere (!?). Viel geschrieben, Konsequenz ist, daß es mit den geschweiften Klammern leider nicht funktioniert. Erhalte den Fehler
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Users\Markus\Pythonprojekte\Gaussian\retest.py", line 13, in <module>
c = re.search(r'\.*{6,7}=', string, re.S)
File "C:\Python26\lib\re.py", line 142, in search
return _compile(pattern, flags).search(string)
File "C:\Python26\lib\re.py", line 245, in _compile
raise error, v # invalid expression
sre_constants.error: multiple repeat
den ich allerdings nicht verstehe.
Grüße
mushroom