Informatika2-2012/Eloadas11

A MathWikiből
A lap korábbi változatát látod, amilyen Stma (vitalap | szerkesztései) 2012. április 23., 21:21-kor történt szerkesztése után volt.

<-- vissza

Tartalomjegyzék

bevezetés alapcsomagokba

A python egy széles körben használható nyelv, és ezt annak köszönheti, hogy rengeteg területre szolgáltat, vagy létezik 3rd party kiegészítő csomagjai. Itt most az alap csomagok egy kis részét fogjuk áttekinteni.

regexp (re)

Célja hogy reguláris kifejezések segítségével szövegeken tudjatok keresni egy adott mintára és azok elemeit felhasználni.

reguláris kifejezés

a reguláris kifejezés egy karaktersorozat amiben speciális karakterek segítségével mintákat adhatunk meg. a 'alma' egy olyan reg. kif. ami pontosan az alma karaktersorozatra fog egyezni.

speciális karakterek

'.' - a pont a bármilyen karaktert jelöli, kivéve a \n

'^' - azt jelzi, hogy az illesztés során ott van a karakter sorozat eleje

'$' - a kar. sor. végét jelöli

számosság

'*' - jelentése 0 vagy több (mohó)

'+' - 1 vagy több (mohó)

'?' - 0 vagy 1

  • ?, +?, ?? - ha az előzők mögé a ? tesszük akkor a mohó tulajdonságot vezérelhetjük

{m} - az ismétlés pontos számát adhatjuk meg

{m,n} - m és n közötti ismétlést

{m,n}? - hasonó...

escape karakter

'\'

halmaz

[] - ezen belül felsorolt karakter valamelyike lehet az erre illeszkedő karakter. Lehet tartományokat megadni mint a kisbetűk: [a-z], stb [a-zA-Z0-9]. A speciális karakterek elvesztik értelmüket a halmazon belül. Karakterosztályok is használhatóak lásd később. Ha az első karakter a '^' akkor a jelentése az lesz, hogy minden olyan karakter ami nincs a halmazban (ha más pozícióban szerepel akkor nincs különleges szerepe). Zárójelek: [()[\]{}] ua. []()[{}]


csoportosítás

'|' - A|B jelentése A vagy B, ahol A és B tetszőleges reguláris kif.

(...) - csoport jelzése. a Csoport újrahasználása a '\' és a csoport számával lehet: \1

(?...) -

Karakter osztályok

\A - a karakterlánc kezdete

\b - üres karakter a karakterláncon kívül

\B - üres karakter a karakterláncon belül

\d - [0-9]

\D - [^0-9]

\s - [ \t\n\r\f\v]

\S - [^ \t\n\r\f\v]

\w - [a-zA-Z0-9_]

\W - [^a-zA-Z0-9_]

\Z - a karakterlánc vége

felhasználása

prog = re.compile(pattern)
result = prog.match(string)

ami megegyezik

result = re.match(pattern, string, flag = re.I)
re.search(pattern, string, flags=0)

végigfut és egyezéseket keres

re.match(pattern, string, flags=0) csak a kezdeti egyezéseket adja vissza

az eredmény

>>> t=re.match(r'a{0,3}b','abaaab') >>> t <_sre.SRE_Match object at 0xb7235d78> >>> dir(t) ['__copy__', '__deepcopy__', 'end', 'expand', 'group', 'groupdict', 'groups', 'span', 'start']


Jelzők használata:
result = re.match(pattern, string, flag = re.I)

jelentése, hogy a nagy és kisbetűket ne különböztesse meg

glob, nath, random, urllib2, datetime, timeit, doctest, unittest, xml, json, email, smtplib, poplib, threading, zipfile, logging, weakref, gc, array, collections, bisect, heapsq ...

Személyes eszközök