3.1 Компилиране на регулярни изрази

Регулярните изрази се компилират до инстанции на RegexObject, които разполагат с методи за извършване на различни операции като претърсване за съвпадения по образец или заместване на символни низове.

>>> import re
>>> p = re.compile('ab*')
>>> print p
<re.RegexObject instance at 80b4150>
re.compile() приема и един незадължителен аргумент flags, който се използва, за да се включат различни специални възможности или разновидности на синтаксиса. По-късно ще разгледаме наличните настройки, а засега ще видим един прост пример:

>>> p = re.compile('ab*', re.IGNORECASE)
РИ се предава на re.compile() като символен низ. Регулярните изрази се третират като символни низове, понеже не са част от ядрото на езика Питон и не е създаден специален синтаксис за изразяването им. (Съществуват приложения, които изобщо не се нуждаят от РИ, така че няма смисъл да се натоварва спецификацията на езика.) Вместо това, re е просто разширителен модул, написан на C, точно както и модула string.От версия 2.0 на Питон, модулът string не е чак толкова самостоятелен, тъй като повечето от функциите му всъщност препращат към съответните методи на обектите от тип символен низ. Преди това тези функции действително бяха реализирани в модула string.

Поставянето на РИ в символни низове запазва простотата на езика Питон, но води до един недостатък, на който е посветен следващия раздел.