Zdravím. Tady (http://groups.google.com/group/cz.comp.lang.python/browse_thread/ thread/4466880ab8c859c7?hl=cs) jsem s Vaší pomocí řešil, jak z textového zdroje dostat část textu uzavřenou mezi nějakými značkami. Teď to zkouším pomocí regexpů. Pokud je celý zápis mezi start a end značkou na jednom řádku, je všechno v pohodě a regexp funguje, pokud je ale text který chci vypreparovat na více řádku a přidám do re.compile() flag re.DOTALL, chová se dost podivně, asi to bude chtít jiný zápis, nevím ..
.py soubor: # -*- coding: cp1250 -*- import re source = file('muj_regexp_pokus.txt' , 'r') text = [] for line in source: text.append(line) retezec = ''.join(text) vzor = re.compile(r":start:(.*):end:", re.DOTALL) for vyskyt in re.finditer(vzor, retezec): print vyskyt.group(1) .txt soubor: toto je textovy soubor pro pokus s regexpem :) ( file: muj_regexp_pokus.py) z tohoto radku budem regularem parsovat ... :start: toto chci, mam to ? :end: z tohoto radku nechci nic, nejsou tady start/end znacky, za ano :) na tenhle taky prdim, je tu tak maximalne pro okrasu ale tady by se uz neco naslo :start: regexpy jsou fajn :) :end: tady taky: :start: Regulary jsou fakt sranda :end: FOO :) :start: a tady to bude zajimave, zdrojak a text, zdrojak je pres nekolik radku :) import os def getDir(dir='/'): adresare = [x for x in os.listdir(dir) if os.path.isdir('%s%s' % (dir,x))] print adresare getDir() to jsem zvedav jak ten regexp dokopu k tomu, aby fungoval, snad jo :) :end: No a to by snad stacilo .. snad jen nakonec :start: Predposledni radek, ten chci taky .... :end: Konec. _______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz