python a RE

Michal Muhlpachr michalm na pvt.net
Středa Leden 21 22:09:25 CET 1998


Dan Ohnesorg, admin of POWER wrote:
> 
> BTW: neznate nekdo ceskou konferenci o pythonu, asi ne, ze

Klidne zridim, je-li zajem (prihlasi se mi alespon 5 zajemcu
na soukromou adresu? - staci i mene, vsechno revolucni
zacina od mala :-) )
 
> co me trapi:
> v nasledujicim kousku kodu
> 
> for item in msg.headers:
>  for pat in mm_cfg.FILTER_HEADERS:
>   if regexp.match(pat,item) != -1:
>    msg.headers.remove(item)

Neni dobre iterovat pres list, ktery pri iteraci
menis (mazes z nej). To nedopadne vetsinou dobre :-)

> porovnavam
> 
> item = Received: from max.feld.cvut.cz (max.feld.cvut.cz
> pat = ^X-pmrqc:.
> 
> at porovnavam proti -1, nule, None vzdycky to vypada, ze item
> vyhovuje patternu. Pritom nevidim duvod, proc by to tak melo byt,
> nemohl by mi nekdo, kdo ma zkusensti s RE rict, jestli je to ok nebo
> ne?

Pouzivas regex, ne re
Pokud mas Python 1.5 je lepsi pouzivat re, je to
kompatibilni s Perlem a regex je uz oznacen jako obsolescence.
Nevim, kde je problem, me to funguje OK.

Priklad:
>>> import regex
>>> item = 'Received: from max.feld.cvut.cz (max.feld.cvut.cz'
>>> pat = '^X-pmrqc:.'
>>> regex.match(pat, item)
-1
>>> pat = '^X-pmrqc:'
>>> regex.match(pat, item)
-1
>>> pat = '^X-pmrqc'
>>> regex.match(pat, item)
-1
>>> regex.match(pat, item) != -1
0
>>> pat = '^Received:'
>>> regex.match(pat, item)
9
>>> regex.match(pat, item) != -1
1

Vliv na funkci regex muze mit regex_syntax.py v lib,
ale ne pri tom paternu, ktery uvadis. 

Jestli to neni tou spatnou iteraci?

Takze jestli je mozno poskytnout vice informaci,
mohu byt napomocen.

> diky
> dan
>                     ________________________________________
> DDDDDD
> DD   DD                Dan Ohnesorg, supervisor on POWER
> DD  OOOO               Dan na feld.cvut.cz
> DD OODDOO              Dep. of Power Engineering
> DDDDDD OO              CTU FEL Prague, Bohemia
>    OO  OO              work: +420 2 24352785;+420 2 24972109
>     OOOO               home: +420 311 679679;+420 311 679311
>                     ________________________________________
> Nekdy je rozumne o krok ustoupit, aby se prodlouzil rozbeh.

Ahoj
-- 
Michal Muhlpachr ________________________________ 
email: michalm na pvt.net  http://www.pvtnet.cz
tel:+420-5-4155 8424
PVT a.s., Veveri 102, 659 10 Brno, Czech Republic


Další informace o konferenci Linux