рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╛рдЗрдбред рднрд╛рдЧ реи

рдЗрд╕ рдореИрдиреБрдЕрд▓ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ , рд╣рдордиреЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реА рдкреНрд░рдХрдЯ рдХрд┐рдпрд╛ рд╣реИред рджреВрд╕рд░реЗ, рдмрдбрд╝реЗ, рдЖрдзреЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдХреБрдЫ рдирдП рдореЗрдЯрд╛рдЪрдЯреНрд░реИрдХреНрдЯрд░реНрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ, рдХреИрд╕реЗ рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдорд┐рд▓рд╛рди рдкрд╛рда рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рддреЛрдбрд╝реЗрдВ, рдкрд╛рда рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдЕрдВрдд рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рдЕрдзрд┐рдХ рдореЗрдЯрд╛рдЪреИрдХрд░


рдХреБрдЫ рдореЗрдЯрд╛рдЪреИрдХрд░ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╣рдордиреЗ рдЕрднреА рддрдХ рдЕрдзреНрдпрдпрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдЗрд╕ рдЦрдВрдб рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред

рд╢реЗрд╖ рдореЗрдЯрд╛рдЪрдЯреНрд░реИрдХреНрдЯрд░реНрд╕ рдореЗрдВ рд╕реЗ рдХреБрдЫ рд╢реВрдиреНрдп-рдЖрдХрд╛рд░ рдХреЗ рдмрдпрд╛рди рд╣реИрдВ ред рд╡реЗ рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬрди рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдХрд┐рд╕реА рднреА рд╡рд░реНрдг рдХреЛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╕ рд╕рдлрд▓рддрд╛ рдпрд╛ рд╡рд┐рдлрд▓рддрд╛ рд╕рдВрднрд╡ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, \b рдПрдХ рдХрдерди рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╢рдмреНрдж рдХреА рд╕реАрдорд╛ рдкрд░ рд╣реИ, рдЬрдмрдХрд┐ \b рд╡рд░реНрдг рд╕реНрд╡рдпрдВ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╢реВрдиреНрдп рдЖрдХрд╛рд░ рдХреЗ рдмрдпрд╛рдиреЛрдВ рдХреЛ рдХрднреА рднреА рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рд╡реЗ рджрд┐рдП рдЧрдП рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдЬрдЧрд╣ рдкрд░ рдЕрдирдВрдд рдмрд╛рд░ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред

|
OR рдСрдкрд░реЗрдЯрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдпрджрд┐ рдП рдФрд░ рдмреА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИрдВ, рддреЛ A|B рдХрд┐рд╕реА рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ рдЬреЛ рдП рдпрд╛ рдмреА рдореЗрдЯрд╛рдЪреИрдХрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдк рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдХрдИ рд╡рд░реНрдгреЛрдВ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдмрд╣реБрдд рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред рдХреНрд░реЛ | рд╕рд░реНрд╡реЛ рдпрд╛ рддреЛ Crow рдпрд╛ Servo рд╕рд╛рде рдПрдХ рдореИрдЪ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛, рди рдХрд┐ Cro('w' 'S')ervo ред

^
рдПрдХ рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реА рдПрдХ рдореИрдЪ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ MULTILINE рдзреНрд╡рдЬ MULTILINE , рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдиреНрдпреВрд▓рд╛рдЗрди рд╡рд░реНрдг рдХреЗ рдмрд╛рдж рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдвреВрдВрдврдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реИрдВ, рддреЛ ^From рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:

>>> рдкреНрд░рд┐рдВрдЯ рд░реА ред рдЦреЛрдЬ ( '^ рд╕реЗ' , 'рдпрд╣рд╛рдБ рд╕реЗ рдЕрдирдВрдд рдХрд╛рд▓ рддрдХ' )
< _sreред 0x ... > рдкрд░ SRE_Match рдСрдмреНрдЬреЗрдХреНрдЯ
>>> рдкреНрд░рд┐рдВрдЯ рд░реА ред рдЦреЛрдЬ ( '^ рд╕реЗ' , 'рдореЗрдореЛрд░реА рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐' )
рдХреЛрдИ рдирд╣реАрдВ


$
^ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЬреЛ рдпрд╛ рддреЛ рд░реЗрдЦрд╛ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫреЛрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдирдИ рдкрдВрдХреНрддрд┐ рдХреЗ рдЪрд░рд┐рддреНрд░ рджреНрд╡рд╛рд░рд╛ред

>>> рдкреНрд░рд┐рдВрдЯ рд░реА ред рдЦреЛрдЬ ( '} $' , '{рдмреНрд▓реЙрдХ}' )
< _sreред 0x ... > рдкрд░ SRE_Match рдСрдмреНрдЬреЗрдХреНрдЯ
>>> рдкреНрд░рд┐рдВрдЯ рд░реА ред рдЦреЛрдЬ ( '} $' , '{рдмреНрд▓реЙрдХ}' )
рдХреЛрдИ рдирд╣реАрдВ
>>> рдкреНрд░рд┐рдВрдЯ рд░реА ред рдЦреЛрдЬ ( '} $' , '{рдмреНрд▓реЙрдХ} \ n ' )
< _sreред 0x ... > рдкрд░ SRE_Match рдСрдмреНрдЬреЗрдХреНрдЯ


\A
рдХреЗрд╡рд▓ рдкрдВрдХреНрддрд┐ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, MULTILINE ^ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди MULTILINE рдзреНрд╡рдЬ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

\Z
рдХреЗрд╡рд▓ рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, MULTILINE , $ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди MULTILINE рдзреНрд╡рдЬ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

\b
рд╢рдмреНрдж рд╕реАрдорд╛ред рдПрдХ рд╢рдмреНрдж рдХреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ / рдпрд╛ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╢рдмреНрдж рдХреА рд╕реАрдорд╛рдПрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдпрд╛ рдХрд┐рд╕реА рднреА рд╡рд░реНрдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИрдВ рдЬреЛ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рд╣реИрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рд╢рдмреНрдж class рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдПрдХ рд╢рдмреНрдж рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рд╢рдмреНрдж рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИ, рддреЛ рдХреЛрдИ рдореЗрд▓ рдирд╣реАрдВ рд╣реИ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ ( r ' \ b рд╡рд░реНрдЧ \ b ' )
>>> рдкреНрд░рд┐рдВрдЯ рдкреАред рдЦреЛрдЬ ( 'рдХреЛрдИ рдХрдХреНрд╖рд╛ рдирд╣реАрдВ' )
< _sreред 0x ... > рдкрд░ SRE_Match рдСрдмреНрдЬреЗрдХреНрдЯ
>>> рдкреНрд░рд┐рдВрдЯ рдкреАред рдЦреЛрдЬ ( 'рдЕрдШреЛрд╖рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо' )
рдХреЛрдИ рдирд╣реАрдВ
>>> рдкреНрд░рд┐рдВрдЯ рдкреАред рдЦреЛрдЬ ( 'рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ' )
рдХреЛрдИ рдирд╣реАрдВ


рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рджреЛ рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рдпрд╛рдж рд░рдЦрдиреА рдЪрд╛рд╣рд┐рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдкрд╛рдпрдерди рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдФрд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЯрдХрд░рд╛рд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ: рдкрд╛рдпрдерди рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХреЛрдВ рдореЗрдВ, \b рдмреИрдХрд╕реНрдкреЗрд╕ рд╡рд░реНрдг рд╣реИ, ASCII рд╣реИред 8. рдпрджрд┐ рдЖрдк рдХрдЪреНрдЪреЗ рддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рдпрдерди рдмреИрдХрд╕реНрдкреЗрд╕ рдХреЛ \b рдмрджрд▓ рджреЗрдЧрд╛, рдФрд░ рдЖрдкрдХрд╛ рд░реЗрдЧреЗрдХреНрд╕ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рди ( ' \ b рд╡рд░реНрдЧ \ b ' )
>>> рдкреНрд░рд┐рдВрдЯ рдкреАред рдЦреЛрдЬ ( 'рдХреЛрдИ рдХрдХреНрд╖рд╛ рдирд╣реАрдВ' )
рдХреЛрдИ рдирд╣реАрдВ
>>> рдкреНрд░рд┐рдВрдЯ рдкреАред рдЦреЛрдЬ ( ' \ b ' + 'рд╡рд░реНрдЧ' + ' b ' )
< _sreред 0x ... > рдкрд░ SRE_Match рдСрдмреНрдЬреЗрдХреНрдЯ


рджреВрд╕рд░реЗ, рдЗрд╕ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрдг рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓реНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рд╕рдВрдпреЛрдЬрди \b , рдкрд╛рдпрдерди рдмреИрдХрд╕реНрдкреЗрд╕ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред

\ _ рдмреА
рдкрд┐рдЫрд▓реЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╢рдмреНрдж рд╕реАрдорд╛ рдкрд░ рдирд╣реАрдВред

рд╕рдореВрд╣


рдЕрдХреНрд╕рд░, рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрд░рд╡реА рдПрдХ рдореИрдЪ рдкрд╛рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдХреНрд╡реЗрд░реА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдХрдИ рдЙрдкрд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдХрд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, RFC-822 рдорд╛рдирдХ рдореЗрдВ, рд╣реЗрдбрд░ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдХреЛрд▓рди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

From: author@example.com
User-Agent: Thunderbird 1.5.0.9 (X11/20061227)
MIME-Version: 1.0
To: editor@example.com


рдЗрд╕реЗ рдкреВрд░реЗ рд╢реАрд░реНрд╖рдХ рдмрд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓рд┐рдЦрдХрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рд╕рдореВрд╣ рд╣реИ рдЬреЛ рд╣реЗрдбрд░ рдХреЗ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЕрдиреНрдп рд╕рдореВрд╣ рдЬреЛ рд╣реЗрдбрд░ рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

рд╕рдореВрд╣реЛрдВ рдХреЛ рдореЗрдЯрд╛рдЪреЗрд╕рд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХреЛрд╖реНрдардХ '(', ')' рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред '(' рдФрд░ ')' рдХрд╛ рд╡рд╣реА рдЕрд░реНрде рд╣реИ рдЬреЛ рдЧрдгрд┐рддреАрдп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╣реИ; рд╡реЗ рд╕рдореВрд╣ рдореЗрдВ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рднрд╛рд╡ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рд╕рдореВрд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ *, +, ? рдФрд░ {m, n} ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, (ab)* рд╢реВрдиреНрдп рдпрд╛ рдЕрдзрд┐рдХ ab repetitions рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ред

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рди ( '(рдЕрдм) *' )
>>> рдкреНрд░рд┐рдВрдЯ рдкреАред рдореИрдЪ ( 'рдЕрдмрд╛рдмрд╛рдмрдм' ) ред рд╕реНрдкрд╛рди ( )
( 0 , 10 )


рдХреЛрд╖реНрдардХ рд╕рдореВрд╣ рдорд┐рд▓рд╛рди рдкрд╛рда рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рд╕реВрдЪрдХ рдкрд░ рднреА рдХрдмреНрдЬрд╛ рдХрд░рддреЗ рд╣реИрдВ; рдпрд╣ group(), start(), end() рдФрд░ span() рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдореВрд╣ 0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рд╕рдореВрд╣ 0 рд╣рдореЗрд╢рд╛ рдореМрдЬреВрдж рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдкреВрд░реА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП MatchObject рддрд░реАрдХреЛрдВ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ 0 рд╣реЛрддреЗ рд╣реИрдВ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рд┐рдд ( 'рдП) рдмреА' )
>>> рдПрдо = рдкреАред рдореИрдЪ ( 'рдЕрдм' )
>>> рдПрдоред рд╕рдореВрд╣ ( )
'рдЕрдм'
>>> рдПрдоред рд╕рдореВрд╣ ( 0 )
'рдЕрдм'


рдЙрдкрд╕рдореВрд╣реЛрдВ рдХреЛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ, 1 рд╕реЗ рдЖрдЧреЗ рдХреА рдУрд░ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдореВрд╣реЛрдВ рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдЕрдиреБрд▓рдЧреНрдирдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрд╕ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░реИрдХреЗрдЯ рдХреЗ рд╡рд░реНрдгреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рди ( '(a (b) c) d' )
>>> рдПрдо = рдкреАред рдореИрдЪ ( 'abcd' )
>>> рдПрдоред рд╕рдореВрд╣ ( 0 )
'рдПрдмреАрд╕реАрдбреА'
>>> рдПрдоред рд╕рдореВрд╣ ( 1 )
'рдПрдмреАрд╕реА'
>>> рдПрдоред рд╕рдореВрд╣ ( 2 )
'рдмреА'


group() рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдХрдИ рд╕рдореВрд╣ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрдкрд▓ рдпреБрдХреНрдд рдорд╛рди рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

>>> рдПрдоред рд╕рдореВрд╣ ( 2 , 1 , 2 )
( 'рдмреА' , 'рдПрдмреАрд╕реА' , 'рдмреА' )


groups() рд╡рд┐рдзрд┐ 1 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЙрдкрд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдПрдХ рдЯреБрдХрдбрд╝реА рд▓реМрдЯрд╛рддреА рд╣реИ:

>>> рдПрдоред рд╕рдореВрд╣ ( )
( 'рдПрдмреАрд╕реА' , 'рдмреА' )


рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдмреИрдХрд▓рд┐рдВрдХреНрд╕ рдЖрдкрдХреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реЗ рдкрдХрдбрд╝реЗ рдЧрдП рд╕рдореВрд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓рд╛рдЗрди рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, \1 рдЗрд╕ рддрдереНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдХрд┐ рд╕рдореВрд╣ 1 рдХреА рд╕рд╛рдордЧреНрд░реА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рджреЛрд╣рд░рд╛рдИ рдЬрд╛рддреА рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд RW рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдирдХрд▓реА рд╢рдмреНрджреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ ( r '( \ b \ w +) \ s + \ 1 ' )
>>> рдкреАред рдЦреЛрдЬ ( 'рдкреЗрд░рд┐рд╕ рдЗрди рдж рд╕реНрдкреНрд░рд┐рдВрдЧ' ) ред рд╕рдореВрд╣ ( )
'рдж'


рдмреИрдХрд▓рд┐рдВрдХреНрд╕, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдПрдХ, рдЕрдХреНрд╕рд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЬрд▓реНрдж рд╣реА рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдВрдЧреЗ рдХрд┐ рд╡реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИрдВред

рд╕рд╛рдордЧреНрд░реА рдХреИрдкреНрдЪрд░ рд╕рдореВрд╣ рдФрд░ рдирд╛рдорд╛рдВрдХрд┐рдд рд╕рдореВрд╣

рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдХрдИ рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рджреЛрдиреЛрдВ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдФрд░ рдкреАрдмреА рд╕реНрд╡рдпрдВ рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдФрд░ рд╕рдВрд░рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЬрдЯрд┐рд▓ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ, рд╕рдореВрд╣ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рд╡рд╛рд▓реА рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред рд╡реЗ рджреЛрдиреЛрдВ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдкрд╣рд▓реЗ рдорд╛рдирддреЗ рд╣реИрдВред

рдкрд░реНрд▓ 5 рдиреЗ рдорд╛рдирдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗ, рдФрд░ re рдореЙрдбреНрдпреВрд▓ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдПрдХрд▓-рдЪрд░рд┐рддреНрд░ рдореЗрдЯрд╛рдЪреИрдХрд░реНрд╕ рдпрд╛ рдирдП рдмреИрдХрд╕реНрд▓реИрд╢ рджреГрд╢реНрдпреЛрдВ рдХреЛ рдЪреБрдирдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдкрд░реНрд▓ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдорд╛рдирдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рд╣реЛред рдпрджрд┐ рдЖрдк рдЪреБрдирддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, & рдирдП рдореЗрдЯрд╛рдЪреИрдХрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рддреЛ рдкреБрд░рд╛рдиреЗ рдирд┐рдпрдорд┐рдд рднрд╛рд╡ рдЗрд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдЪрд░рд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЖрдк рдЗрд╕рд╕реЗ рдмрдЪ рдирд╣реАрдВ рд╕рдХрддреЗред

рдкрд░реНрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рд╕рдорд╛рдзрд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ (?...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред рд╕рд╛рдорд╛рдиреНрдп рдЖрд░рд╡реА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрд╖реНрдардХ рдХреЗ рдмрд╛рдж рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рд╣реИ, рдЪреВрдВрдХрд┐ ? рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджреЛрдВ рдХреЛ рдЬрдиреНрдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рддреБрд░рдВрдд рдмрд╛рдж рдкреНрд░рддреАрдХ ? рджрд┐рдЦрд╛рдУ рдХрд┐ рдХрд┐рд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП (?=foo) рдпрд╣ рдПрдХ рд╣реИ (рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХрдерди), рдФрд░ (?:foo) рдпрд╣ рдХреБрдЫ рдФрд░ рд╣реИ (рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╕рдореВрд╣, рд╕рдмрдкреНрд░реЙрдкрд╢рди foo рд╕рд╣рд┐рдд)ред

рдкрд╛рдпрдерди рдиреЗ рдкрд░реНрд▓ рдПрдХреНрд╕рдЯреЗрдВрдбреЗрдб рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬреЛрдбрд╝рд╛ рд╣реИред рдпрджрд┐ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рдмрд╛рдж рдкрд╣рд▓рд╛ рд╡рд░реНрдг P , рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрд╛рдпрдерди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдРрд╕реЗ рджреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИрдВ: ( ?P<some_name>... ) рдПрдХ рдирд╛рдорд┐рдд рд╕рдореВрд╣ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ ( ?P=some_name ) рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ ?P=some_name рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкрд░реНрд▓ 5 рдХреА рднрд╡рд┐рд╖реНрдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдПрдХ рдЕрд▓рдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛрдбрд╝рддреА рд╣реИрдВ, рддреЛ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдирдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдПрдХ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╕рдореВрд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИред рдЖрдк рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: (?:...) , рдЬрд╣рд╛рдВ рдЖрдк рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде:

>>> рдПрдо = рд░реА ред рдореИрдЪ ( "([рдПрдмреАрд╕реА]) +" , "рдПрдмреАрд╕реА" )
>>> рдПрдоред рд╕рдореВрд╣ ( )
( 'c' )
>>> рдПрдо = рд░реА ред рдореИрдЪ ( "(?: [abc]) +" , "abc" )
>>> рдПрдоред рд╕рдореВрд╣ ( )
( )


рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЖрдкрдХреЛ рдЙрд╕ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╕рдореВрд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдпреЗ рд╕рдореВрд╣ рдирд┐рдпрдорд┐рдд рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ; рдЖрдк рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рднреА рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдкрдпреБрдХреНрдд рдЪрд░рд┐рддреНрд░ рдХреЗ рд╕рд╛рде рджреЛрд╣рд░рд╛рдПрдВ, рдЬреИрд╕реЗ * рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдбрд╛рд▓реЗрдВ (рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдпрд╛ рдирд╣реАрдВ)ред

рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╕рдореВрд╣реЛрдВ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╕рдВрдЦреНрдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЗрди рд╕рдореВрд╣реЛрдВ рдХреЛ рдирд╛рдо рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирд╛рдорд┐рдд рд╕рдореВрд╣реЛрдВ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╛рдпрдерди рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ: (?P<some_name>...) ред рдирд╛рдорд╛рдВрдХрд┐рдд рд╕рдореВрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рдпрдорд┐рдд рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡реЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд╛рдо рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред MatchObject рддрд░реАрдХреЗ рдЬреЛ рдирд┐рдпрдорд┐рдд рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдереЗ, рджреЛрдиреЛрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдореВрд╣ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╕рдореВрд╣ рдХреЗ рдирд╛рдо рд╡рд╛рд▓реЗ рддрд╛рд░ред рдЕрд░реНрдерд╛рддреН, рдирд╛рдорд┐рдд рд╕рдореВрд╣ рднреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕рдореВрд╣ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рд┐рдд ( r '(? p <рд╢рдмреНрдж> \ b \ w + \ b )' )
>>> рдПрдо = рдкреАред рдЦреЛрдЬ ( '((((рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрдиреЛрдВ рдХрд╛))' )
>>> рдПрдоред рд╕рдореВрд╣ ( 'рд╢рдмреНрдж' )
'рдмрд╣реБрдд рд╕рд╛рд░реЗ'
>>> рдПрдоред рд╕рдореВрд╣ ( 1 )
'рдмрд╣реБрдд рд╕рд╛рд░реЗ'


рдирд╛рдорд╛рдВрдХрд┐рдд рд╕рдореВрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЖрдкрдХреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдЖрд╕рд╛рди-рд╕реЗ-рдпрд╛рдж рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ imaplib рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЖрддрдВрд░рд┐рдХрдбрд╛рдп = рдкреБрдирдГ ред рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ ( r 'рдЖрдВрддрд░рд┐рдХ' '
r '(? (P <рджрд┐рди> [123] [0-9]) - (? P <mon> [AZ] [az] [az]) -'
r '(?; P <year> [0-9] [0-9] [0-9] [0-9])'
r '(?; P <hour> [0-9] [0-9]) :(? p <min> [0-9] [0-9]) :(? P <sec> [0-9] [? 0-9]) '
r '(? P <zonen> [- +]) (? P <Zoneh> [0-9] [0-9]) (? P <zonem> [0-9] [0-9])'
рдЖрд░ '' ' )


рдкреНрд░рдХрд╛рд░ рдХреА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдмреИрдХрд▓рд┐рдВрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ (...)\1 рд╕рдореВрд╣ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп рд╕рдореВрд╣ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реЛрдЧрд╛ред рдПрдХ рдФрд░ рдкрд╛рдпрдерди рд╡рд┐рд╕реНрддрд╛рд░: (?P=name) рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд╛рдорд┐рдд рд╕рдореВрд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╢рдмреНрдж рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдкрд┐рдЫрд▓реА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, (\b\w+)\s+\1 рдХреЛ рднреА рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (?P<doble_word>\b\w+)\s+(?P=doble_word) :

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рди ( r '(? P <рд╢рдмреНрдж> \ b \ w +) \ s + ((? P = рд╢рдмреНрдж)' )
>>> рдкреАред рдЦреЛрдЬ ( 'рдкреЗрд░рд┐рд╕ рдЗрди рдж рд╕реНрдкреНрд░рд┐рдВрдЧ' ) ред рд╕рдореВрд╣ ( )
'рдж'


рдЕрдЧреНрд░рд┐рдо рдЪреЗрдХ

рдЪреЗрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдФрд░ рдирдХрд╛рд░рд╛рддреНрдордХ (рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА) рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдФрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:

(?=...)
рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЬрд╛рдБрдЪред рдорд╛рдорд▓реЗ рдХреЗ рдЕрдиреБрд░реВрдк, рдЬрдм рдирд┐рд╣рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рдпрд╣рд╛рдБ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ ... рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди, рдирд┐рд╣рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рддреБрд▓рдирд╛ рдЗрдВрдЬрди рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝рддрд╛ рд╣реИ; рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╢реЗрд╖ рднрд╛рдЧ рдХреА рддреБрд▓рдирд╛ рдЖрдЧреЗ рдЙрд╕ рджрд╛рдИрдВ рдУрд░ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд╣рд╛рдБ рдЕрдиреБрдореЛрджрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

(?!...)
рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдЬрд╛рдВрдЪ рдЙрд╕ рдорд╛рдорд▓реЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдЬрдм рдирд┐рд╣рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИред

рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрд╕ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЙрдкрдпреЛрдЧреА рд╣реИред рдПрдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдПрдХ рдбреЙрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдирд╛рдо рд╣реА рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ред

рдРрд╕реА рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдЦрд╛рдХрд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:

.*[.].*$

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░рддреАрдХ . рд╡рд┐рд╢реЗрд╖ рдХреЛрд╖реНрдардХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рдВрджреБ рд╕реНрд╡рдпрдВ рдПрдХ рдореЗрдЯрд╛рдЪреИрдХрд░ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдВрддрд┐рдо $ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВ; рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рд╢реЗрд╖ рд░реЗрдЦрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЕрдм, рд╕рдорд╕реНрдпрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рд╡реНрдпрд╛рдкрдХ рдорд╛рдиреЗрдВ; рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЙрди рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ bat рдирд╣реАрдВ рд╣реИ? рдХреБрдЫ рдЧрд▓рдд рдкреНрд░рдпрд╛рд╕:

.*[.][^b].*$
рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдЪрд░рд┐рддреНрд░ рдХреЛ b рди рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг bat рдХреЛ рдмрд╛рд╣рд░ bat рдЬрд╛рдПред рдпрд╣ рдЧрд▓рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ foo.bar рдХреЛ рднреА рдмрд╛рд╣рд░ рдХрд░ foo.bar ред

.*[.]([^b]..|.[^a].|..[^t])$
рдЬрдм рдЖрдк рдЖрд╡рд╢реНрдпрдХ рд╡рд░реНрдгреЛрдВ рдХреЗ рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдп рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ рднреА рдЕрдзрд┐рдХ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЬрд╛рдПрдЧреА: рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛ рдкрд╣рд▓рд╛ рдЪрд░рд┐рддреНрд░ рдЦ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рджреВрд╕рд░рд╛ рдирд╣реАрдВ рд╣реИ; рддреАрд╕рд░рд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ foo.bar рдХреЛ рд╕рдХреНрд╖рдо foo.bar рдФрд░ autoexec.bat рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рддреАрди-рдЕрдХреНрд╖рд░ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рджреЛ-рд╡рд░реНрдг рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП sendmail.cf ред рдлрд┐рд░ рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$
рддреАрд╕рд░реЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ, рддреАрди рд╡рд░реНрдгреЛрдВ рд╕реЗ рдХрдо рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рдЕрдХреНрд╖рд░ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЕрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреИрдпрд╛рд░ рд╣реИ, рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдЕрдЧрд░ рд╕рдорд╕реНрдпрд╛ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдмрд▓реНрд▓реЗ рдФрд░ рдПрдХреНрд╕рдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рджреЛрдиреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рднреА рдЬрдЯрд┐рд▓ рдФрд░ рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рд▓реАрдб рдЪреЗрдХ рдЗрди рд╕рднреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ:

.*[.](?!bat$).*$
рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛ рдорддрд▓рдм рд╣реИ: рдпрджрд┐ bat рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреА рдЧрдИ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИ, рддреЛ рдмрд╛рдХреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ; рдЕрдЧрд░ рдореИрдЪрд┐рдВрдЧ bat$ , рддреЛ рдкреВрд░рд╛ рдЦрд╛рдХрд╛ рд╣рдореЗрдВ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛ред рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ sample.batch $ рд╕рд╛рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ sample.batch рдЬреИрд╕реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ sample.batch ред

рдПрдХ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЕрдм рдЖрд╕рд╛рди рд╣реИ; рдмрд╕ рдЗрд╕реЗ рдПрдХ рд╣реА рдмрдпрд╛рди рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдирд┐рдореНрди рдкреИрдЯрд░реНрди рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ bat рдпрд╛ exe рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ:

.*[.](?!bat$|exe$).*$

рдкрдВрдХреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди


рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ, рд╣рдордиреЗ рдмрд╕ рдПрдХ рд╕реНрдерд┐рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рдЦреЛрдЬ рдХреАред рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЕрдХреНрд╕рд░ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рддрд╛рд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП:

рд╡рд┐рдзрд┐ / рдЧреБрдгрд▓рдХреНрд╖реНрдп
рд╡рд┐рднрд╛рдЬрди ()рдПрдХ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рддреЛрдбрд╝реЛ рдЬрд╣рд╛рдВ рдПрдХ рдореИрдЪ рд╣реИ
рдЙрдк ()рдкреАрдмреА рдХреЗ рд╕рд╛рде рдореИрдЪреЛрдВ рдХреЗ рд╕рднреА рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ
рд╕рдмреНрди ()рдЙрдк () рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирдИ рд▓рд╛рдЗрди рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ


рд▓рд╛рдЗрди рдЯреВрдЯ рдЧрдИ

split() рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡рд┐рдзрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреА рд╣реИ рдЬрд╣рд╛рдВ рдкреАрдмреА рдХреЗ рд▓рд┐рдП рдПрдХ рдореИрдЪ рд╣реЛрддрд╛ рд╣реИ, рднрд╛рдЧреЛрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ split() рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реАрдорд╛рдВрдХрдХ рдореЗрдВ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ; рдирд┐рдпрдорд┐рдд split() рдХреЗрд╡рд▓ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдкрд╛рддреНрд░реЛрдВ рдпрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдлрд╝рдВрдХреНрд╢рди re.split() ред

.plplit (рд╕реНрдЯреНрд░рд┐рдВрдЧ [, рдореИрдХреНрд╕рд╕рд┐рд▓реЗрдЯ = 0])
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореИрдЪреЛрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐ рдкреАрдмреА рдореЗрдВ рдХреЛрд╖реНрдардХ рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рд╣реИрдВ, рддреЛ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рднреА рдкреНрд░рд╛рдкреНрдд рд╕реВрдЪреА рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред рдпрджрд┐ maxsplit рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ maxsplit рд╡рд┐рднрд╛рдЬрди рд╕реЗ рдЕрдзрд┐рдХ maxsplit , рд╢реЗрд╖ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕реВрдЪреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╡рд┐рднрд╛рдЬрдХ рдЧреИрд░-рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдХреЛрдИ рдЕрдиреБрдХреНрд░рдо рд╣реИред

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ ( r ' \ W +' )
>>> рдкреАред рд╕реНрдкреНрд▓рд┐рдЯ ( 'рдпрд╣ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИ, рд╡рд┐рднрд╛рдЬрди рдХреА рдЫреЛрдЯреА рдФрд░ рдкреНрдпрд╛рд░реА,)ред' )
[ 'рдпрд╣' , 'рд╣реИ' , 'рдП' , 'рдЯреЗрд╕реНрдЯ' , 'рд╢реЙрд░реНрдЯ' , 'рдФрд░' , 'рд╕реНрд╡реАрдЯ' , 'рдСрдл' , 'рд╕реНрдкреНрд▓рд┐рдЯ' , '' ]
>>> рдкреАред рд╡рд┐рднрд╛рдЬрди ( 'рдпрд╣ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИ, рдЫреЛрдЯрд╛ рдФрд░ рдореАрдард╛, рд╡рд┐рднрд╛рдЬрди рдХрд╛) ()ред , 3 )
[ 'рдпрд╣' , 'рд╣реИ' , 'рдП' , 'рдкрд░реАрдХреНрд╖рдг, рдЫреЛрдЯрд╛ рдФрд░ рдореАрдард╛, рд╡рд┐рднрд╛рдЬрди рдХрд╛ ()ред' ]


рдХрднреА-рдХрднреА рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рди рдХреЗрд╡рд▓ рдХреНрдпрд╛ рдкрд╛рда рд╕реАрдорд╛рдВрдХрдХ рдХреЗ рдмреАрдЪ рдерд╛, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкрд░рд┐рд╕реАрдорди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдЖрд░рд╡реА рдореЗрдВ рдХреЛрд╖реНрдардХ рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рд╣реИрдВ, рддреЛ рдпреЗ рдорд╛рди рд╕реВрдЪреА рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВред рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ ( r ' \ W +' )
>>> P2 = рд░реА ред рд╕рдВрдХрд▓рди ( r '( \ W +)' )
>>> рдкреАред рд╡рд┐рднрд╛рдЬрди ( 'рдпрд╣ ... рдПрдХ рдкрд░реАрдХреНрд╖рд╛ рд╣реИред' )
[ 'рдпрд╣' , 'рд╣реИ' , 'рдП' , 'рдкрд░реАрдХреНрд╖рдг' , '' ]
>>> P2ред рд╡рд┐рднрд╛рдЬрди ( 'рдпрд╣ ... рдПрдХ рдкрд░реАрдХреНрд╖рд╛ рд╣реИред' )
[ 'рдпрд╣ тАЩ , 'тАжтАЩ , 'тАЩ , тАЩ тАЩ ,, aтАЩ , тАЩтАЩ , ' рдкрд░реАрдХреНрд╖рдг тАЩ , тАЩ тАЩред , '' ]


рдкрд╣рд▓рд╛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ re.split() рдореЙрдбреНрдпреВрд▓ рдлрд╝рдВрдХреНрд╢рди PB рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдпрдерд╛ рднреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ:

>>> рдкреБрдирдГ ред рд╕реНрдкреНрд▓рд┐рдЯ ( '[ \ W ] +' , 'рд╢рдмреНрдж, рд╢рдмреНрдж, рд╢рдмреНрджред' )
[ 'рд╢рдмреНрдж' , 'рд╢рдмреНрдж' , 'рд╢рдмреНрдж' , '' ]
>>> рдкреБрдирдГ ред рд╕реНрдкреНрд▓рд┐рдЯ ( '([ \ W ] +)' , 'рд╢рдмреНрдж, рд╢рдмреНрдж, рд╢рдмреНрджред' )
[ 'рд╢рдмреНрдж' , ',' , 'рд╢рдмреНрдж' , ',' , 'рд╢рдмреНрдж' , '' , '' ]
>>> рдкреБрдирдГ ред рд╡рд┐рднрд╛рдЬрди ( '[ \ W ] +' , 'рд╢рдмреНрдж, рд╢рдмреНрдж, рд╢рдмреНрджред' , 1 )
[ 'рд╢рдмреНрдж' , 'рд╢рдмреНрдж, рд╢рдмреНрджред' ]


рдЦреЛрдЬреЗрдВ рдФрд░ рдмрджрд▓реЗрдВ

рдПрдХ рдЕрдиреНрдп рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рд╕рднреА рдореИрдЪреЛрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рд╣реИред sub() рд╡рд┐рдзрд┐ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рднрд╛рдЧ рдХреЗ рдорд╛рди рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреА рд╣реИ (рдЬреЛ рдпрд╛ рддреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рд╣реЛ рд╕рдХрддреА рд╣реИ) рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдВрдЧред

.sub (рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди, рд╕реНрдЯреНрд░рд┐рдВрдЧ [, рдЧрд┐рдирддреА = 0])
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд▓реМрдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИред

рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рд╕рдВрдЦреНрдпрд╛ рдмрджрд▓реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореИрдЪреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд╣реИред

sub() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгред рд░рдВрдЧ рдирд╛рдореЛрдВ рдХреЛ рд╢рдмреНрдж colour рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рди ( '(рдиреАрд▓рд╛ | рд╕рдлреЗрдж | рд▓рд╛рд▓)' )
>>> рдкреАред рдЙрдк ( 'рд░рдВрдЧ' , 'рдиреАрд▓реЗ рдореЛрдЬреЗ рдФрд░ рд▓рд╛рд▓ рдЬреВрддреЗ' )
'рд░рдВрдЧ рдореЛрдЬреЗ рдФрд░ рд░рдВрдЧ рдХреЗ рдЬреВрддреЗ'
>>> рдкреАред рдЙрдк ( 'рд░рдВрдЧ' , 'рдиреАрд▓реЗ рдореЛрдЬреЗ рдФрд░ рд▓рд╛рд▓ рдЬреВрддреЗ' , рдЧрд┐рдирддреА = 1 )
'рд░рдВрдЧ рдореЛрдЬреЗ рдФрд░ рд▓рд╛рд▓ рдЬреВрддреЗ'


рд╕рдмрди () рд╡рд┐рдзрд┐ рдПрдХ рд╣реА рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирдИ рд▓рд╛рдЗрди рдФрд░ рдмрджрд▓реЗ рдЧрдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рд▓рд╛ рдПрдХ рдЯрдкрд▓ рд▓реМрдЯрд╛рддреА рд╣реИ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рди ( '(рдиреАрд▓рд╛ | рд╕рдлреЗрдж | рд▓рд╛рд▓)' )
>>> рдкреАред рд╕рдмрди ( 'рд░рдВрдЧ' , 'рдиреАрд▓реЗ рдореЛрдЬреЗ рдФрд░ рд▓рд╛рд▓ рдЬреВрддреЗ' )
( 'рд░рдВрдЧреАрди рдореЛрдЬреЗ рдФрд░ рд░рдВрдЧ рдХреЗ рдЬреВрддреЗ' , 2 )
>>> рдкреАред рд╕рдмрди ( 'рд░рдВрдЧ' , 'рдХреЛрдИ рд░рдВрдЧ рдирд╣реАрдВ' )
( 'рдХреЛрдИ рд░рдВрдЧ рдирд╣реАрдВ' , 0 )


рдЦрд╛рд▓реА рдореИрдЪреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рддрдм рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╡реЗ рдкрд┐рдЫрд▓реЗ рдореИрдЪ рд╕реЗ рд╕рдЯреЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рди ( 'x *' )
>>> рдкреАред рдЙрдк ( '-' , 'рдПрдмрдХреНрд╕рдб' )
'-Abd-'


рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рддреЛ рднрд╛рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ, \n рдПрдХ рдПрдХрд▓ рдиреНрдпреВрд▓рд╛рдЗрди рд╡рд░реНрдг рд╣реИ, \r рдПрдХ рдЧрд╛рдбрд╝реА рд╡рд╛рдкрд╕реА рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред Backlinks, рдЬреИрд╕реЗ рдХрд┐ \6 рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ PB рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдореВрд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдореВрд▓ рдкрд╛рда рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдкрдВрдХреНрддрд┐ рдХреЗ рднрд╛рдЧ рдореЗрдВ рд╢рдмреНрдж section рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕реЗрд╕ {, } рдореЗрдВ рднрд╛рдЧ рд╕реЗ рдкрд╣рд▓реЗ рд╣реИ, рдФрд░ subsection рд╕рд╛рде section рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рди ( 'рдЕрдиреБрднрд╛рдЧ {(^ ^} * *)}' , рдлрд┐рд░ рд╕реЗ ред VERBOSE )
>>> рдкреАред рдЙрдк ( r 'рдЙрдкрдзрд╛рд░рд╛ { \ 1 }' , 'рдЦрдВрдб {рдкрд╣рд▓рд╛} рдЦрдВрдб {рджреВрд╕рд░рд╛}' )
'рдЙрдкрдзрд╛рд░рд╛ {рдкреНрд░рдердо} рдЙрдкрдзрд╛рд░рд╛ {рджреВрд╕рд░рд╛}'


рдирд╛рдорд┐рдд рд╕рдореВрд╣реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдиреБрдХреНрд░рдо \g<...> , рдЬрд╣рд╛рдВ рд╕рдореВрд╣ рдХреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ... \g<2> \2 рдХреЗ рд╕рдорддреБрд▓реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ \g<2>0 рдЬреИрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред (+ \20 рдХреЛ рд╕рдореВрд╣ 20 рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛рдПрдЧрд╛, рди рдХрд┐ рд╢рд╛рдмреНрджрд┐рдХ '0' рдХреЗ рдмрд╛рдж рджреВрд╕рд░реЗ рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ)ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдСрдкрд░реЗрд╢рди рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ ( 'рдЕрдиреБрднрд╛рдЧ {(? P <name> [^}] *)}' , рдкреБрдирдГ ред VERBOSE )
>>> рдкреАред рдЙрдк ( рдЖрд░ 'рдЙрдкрдзрд╛рд░рд╛ { \ 1 }' , 'рдЦрдВрдб {рдкрд╣рд▓рд╛}' )
'рдЙрдкрдзрд╛рд░рд╛ {рдкреНрд░рдердо}'
>>> рдкреАред рдЙрдк ( r 'рдЙрдкрдзрд╛рд░рд╛ { \ g <1>}' , 'рдЦрдВрдб {рдкрд╣рд▓рд╛}' )
'рдЙрдкрдзрд╛рд░рд╛ {рдкреНрд░рдердо}'
>>> рдкреАред рдЙрдк ( r 'рдЙрдкрдзрд╛рд░рд╛ { \ g <рдирд╛рдо>}' , 'рдЦрдВрдб {рдкрд╣рд▓рд╛}' )
'рдЙрдкрдзрд╛рд░рд╛ {рдкреНрд░рдердо}'


рд╡реИрдХрд▓реНрдкрд┐рдХ рднреА рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧреИрд░-рдЕрддрд┐рд╡реНрдпрд╛рдкреА рдкреИрдЯрд░реНрди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд░ рдмрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, MatchObject рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдлрд╝рдВрдХреНрд╢рди рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ:

>>> рд╣реЗрдХреНрд╕рд░реЗрдк ( рдореИрдЪ ) :
... "рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╣реЗрдХреНрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯреЗрдВ"
... рдорд╛рди = рдЗрдВрдЯ ( рдорд┐рд▓рд╛рдиред рд╕рдореВрд╣ ) ( )
... рд╡рд╛рдкрд╕реА рд╣реЗрдХреНрд╕ ( рдореВрд▓реНрдп )
...
>>> рдкреА = рд░реА ред рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ ( r ' \ d +' )
>>> рдкреАред рдЙрдк ( рд╣реЗрдХреНрд╕рд░реЗрдкреНрд▓, 'рдореБрджреНрд░рдг рдХреЗ рд▓рд┐рдП 65490 рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП 49152ред' )
'рдореБрджреНрд░рдг рдХреЗ рд▓рд┐рдП 0xffd2 рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП 0xc000ред'


рдЖрдо рд╕рдорд╕реНрдпрд╛рдПрдВ


рдХреБрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдирдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рд╡реЗ рдЙрд╕ рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЙрдирд╕реЗ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЦрдВрдб рд╕рдмрд╕реЗ рдЖрдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ред

рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХрднреА-рдХрднреА рдореЙрдбреНрдпреВрд▓ reрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдЧрд▓рддреА рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдПрдХрд▓ рд╡рд░реНрдг рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ re, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рд╕рднреА рд╢рдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдкрдВрдХреНрддрд┐ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рдЖрдорддреМрд░ рдкрд░ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИрдВред

рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкрдВрдХреНрддрд┐ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╢рдмреНрдж wordрдХреЛ рдПрдХ рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ deedред рдпрд╣рд╛рдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреБрдХреНрдд рд╣реИ re.sub(), рд▓реЗрдХрд┐рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ replace()ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ replace()рдпрд╣ рднреА рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ wordрд╢рдмреНрджреЛрдВ рдХреЗ рднреАрддрд░, рдмрджрд▓ рд░рд╣рд╛ рд╣реИ swordfishрдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПsdeedfish, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд░рд▓ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╡рд╣реА рдХрд░реЗрдЧреАред (рд╢рдмреНрджреЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдкрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП \bword\b)ред

рдПрдХ рдЕрдиреНрдп рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдХрд┐рд╕реА рдПрдХрд▓ рд╡рд░реНрдг рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд░реНрдг рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ re.sub('\n', ' ', S), рд▓реЗрдХрд┐рди рдЕрдиреБрд╡рд╛рдж () рд╡рд┐рдзрд┐ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд▓реЗрдЧреА рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рдмрдирд╛ рджреЗрдЧреАред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ re, рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рддреЗрдЬ рдФрд░ рд╕рд░рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдорд┐рд▓рд╛рди () рдЦреЛрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ ()

рдлрд╝рдВрдХреНрд╢рди match()рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдореИрдЪ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ , рдЬрдмрдХрд┐ рдпрд╣ search()рдкреВрд░реА рд▓рд╛рдЗрди рдореЗрдВ рдореИрдЪ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:

>>> print re . match ( 'super' , 'superstition' ) . span ( )
( 0 , 5 )
>>> print re . match ( 'super' , 'insuperable' )
None
>>> print re . search ( 'super' , 'superstition' ) . span ( )
( 0 , 5 )
>>> print re . search ( 'super' , 'insuperable' ) . span ( )
( 2 , 7 )


рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ re.match()рдЕрдкрдиреА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рдордиреЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реБрднрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ .*ред рдЗрд╕ рдкреНрд░рд▓реЛрднрди рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░реЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ re.search()ред рдорд┐рд▓рд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдЧреЗрдХреНрд╕ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрд░рд╡реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдПрдХ рд╕рд╛ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рдореИрдЪ рдЪрд░рд┐рддреНрд░ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдореИрдЪ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ Crowрд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП 'C'ред рдпрд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрдВрдЬрди рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рд┐рддреНрд░ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдкреВрд░реНрдг рддреБрд▓рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЪрд░рд┐рддреНрд░ 'рд╕реА' рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛.*рдЗрд╕ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рддрдХ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдлрд┐рд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╢реЗрд╖ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ re.search()ред

рд▓рд╛рд▓рдЪреА рдмрдирд╛рдо рдЧреИрд░-рд▓рд╛рд▓рдЪреА

рдЬрдм рдПрдХ PB рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ a*, рдкрд░рд┐рдгрд╛рдореА рдХреНрд░рд┐рдпрд╛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдкреИрдЯрд░реНрди рдЦрд╛рддреА рд╣реИред рдпрд╣ рдЕрдХреНрд╕рд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд▓рддрд╛ рд╣реИ рдЬреЛ рд╕рдордорд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЛ рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдг рдХреЛрд╖реНрдардХ <>, HTML рдЯреИрдЧреНрд╕ рдХреЗ рдЖрд╕рдкрд╛рд╕ред HTML рдЯреИрдЧ рдореИрдкрд┐рдВрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рднреЛрд▓реА рджреГрд╖реНрдЯрд┐рдХреЛрдг "рд▓рд╛рд▓рдЪреА" рдкреНрд░рдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ .*:

>>> s = '<html><head><title>Title</title>'
>>> len ( s )
32
>>> print re . match ( '<.*>' , s ) . span ( )
( 0 , 32 )
>>> print re . match ( '<.*>' , s ) . group ( )
< html >< head >< title > Title < /title >


PB '<'рдкрд╣рд▓реЗ рдЯреИрдЧ - html рдореЗрдВ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ .*рдмрд╛рдХреА рдХреА рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рддреБрд▓рдирд╛ рдЙрджреНрдШрд╛рдЯрди '<'рдЯреИрдЧ рдХрдВрдХрд╛рд▓ htmlрд╕реЗ >'рд╕рдорд╛рдкрди рдЯреИрдЧ рдХреЗ рд╕рдорд╛рдкрди рдХреЛрд╖реНрдардХ рддрдХ рдлреИрд▓реА рд╣реБрдИ рд╣реИ /title, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рдереЗред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдорд╛рдзрд╛рди рдЧреИрд░-рд▓рд╛рд▓рдЪреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ *?, +?, ??рдпрд╛ {m,n}?рдЬреЛ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдЯреЗ рдкрд╛рда рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдкрд╣рд▓реЗ рдЕрдХреНрд╖рд░ '>' рдХрд╛ рдЪрдпрди '<' рдХреЗ рдмрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрдВрдЬрди рдЕрдЧрд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ '>' рдЕрдХреНрд╖рд░ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЯреИрдЧ рдирд╛рдо рдХрд┐рддрдирд╛ рд▓рдВрдмрд╛ рд╣реИред рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ:

>>> рдкреНрд░рд┐рдВрдЯ рд░реА ред рдореИрдЪ ( '<ред *?>' , рдПрд╕ ) ред рд╕рдореВрд╣ ( )
< html >


(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HTML рдпрд╛ XML рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рджрд░реНрджрдирд╛рдХ рд╣реИред рдЬрд▓реНрджрдмрд╛рдЬреА рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдкреЗрдЬ рдХреЛрдб рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, HTML рдпрд╛ XML рдкрд╛рд░реНрд╕рд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред)

Re.VERBOSE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЕрдм рддрдХ, рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдкреАрдмреА рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдХреЙрдореНрдкреИрдХреНрдЯ рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рд╡реЗ рдмрд╣реБрдд рдкрдардиреАрдп рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдордзреНрдпрдо рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдЖрд░рдбрдмреНрд▓реНрдпреВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реНрд▓реИрд╢, рдХреЛрд╖реНрдардХ, рдореЗрдЯрд╛рдЪреИрдХрд░реНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдРрд╕реЗ PBs рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп VERBOSE рдзреНрд╡рдЬ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

VERBOSE рдзреНрд╡рдЬ рдореЗрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред PB рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЬреЛ рд╡рд░реНрдг рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рд╣реИрдВ, рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рднрд╛рд╡ dog | catрдХрдо рдкрдардиреАрдп рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИрдВ dog|cat, рд▓реЗрдХрд┐рди [ab] рдЕрднреА рднреА рд╡рд░реНрдгреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдВрдЧреЗ'a', 'b'рдпрд╛ рдПрдХ рд╕реНрдерд╛рдиред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдкреАрдмреА рдХреЗ рдЕрдВрджрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рднреА рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЪрд░рд┐рддреНрд░ #рд╕реЗ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рддрдХ рд╣реЛрддреА рд╣реИрдВред рдЯреНрд░рд┐рдкрд▓ рдЙрджреНрдзрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕реНрд╡рд░реВрдкрдг рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдЧрд╛:

pat = рдкреБрдирдГ ред рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ ( r ""
\ " s * # рдЕрдЧреНрд░рдгреА рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдЫреЛрдбрд╝реЗрдВ
(? рдкреА <рд╣реИрдбрд░> [^: +) # рд╣реИрдбрд░ рдирд╛рдо
\ _ *: # рд╡реНрд╣реЙрдЯреНрд╕рдПрдк, рдФрд░ рдПрдХ рдХреЛрд▓реЛрди
(? рдкреА <рдореВрд▓реНрдп>ред *?) # # рдореВрд▓реНрдп рдХреЗ рд╣реЗрдбрд░ рдХреЗ - * рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд┐рдЫрд▓реА рд╢реНрд╡реЗрдд рд░рд┐рдХреНрддрд┐ рдХреЛ рдЦреЛрдиреЗ #
\ рд░реЛрдВ рдХреЛ * $ # рдкрд┐рдЫрд▓реА рд╢реНрд╡реЗрдд рд░рд┐рдХреНрддрд┐ рдХреЗ рдЕрдВрдд рд▓рд╛рдЗрди
"" "
, рдлрд┐рд░ рд╕реЗ ред рд╡рд░реНрдмреЛрдЬрд╝ )


рдпрд╣ рдкрдврд╝рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:

pat = рдкреБрдирдГ ред рд╕рдВрдХрд▓рди ( рдЖрд░ " \ s * (рдкреА <header> [^:]? +) \ s ?ред? * :( рдкреА <рдореВрд▓реНрдп рдХреА> *) \ s * $" )


рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ


рд░реЗ
рд╣реИрдмреНрд░рд▓реЙрдЧ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдореЙрдбреНрдпреВрд▓ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди
рд░реЗрдЧреЗрдХреНрд╕рдк рдПрдбрд┐рдЯрд░

Source: https://habr.com/ru/post/In115436/


All Articles