PCRE2 резреж.рекрел

рдЕрд░реНрдзреНрдпрд╛ рд╡рд░реНрд╖рд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡рд┐рдХрд╛рд╕рд╛рдирдВрддрд░, PERL-рд╕реБрд╕рдВрдЧрдд рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддреА рд▓рд╛рдпрдмреНрд░рд░реАрдЪрд╛ резреж.рекрел рднрд╛рдЧ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЭрд╛рд▓рд╛ рдЖрд╣реЗ. PCRE2, C рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрдгрд┐ BSD рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рд╣реЗ рддреБрд▓рдиреЗрдиреЗ рдореЛрдареЗ рдкреНрд░рдХрд╛рд╢рди рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ, рдХрд╛рд╣реА рдмрдЧ рдирд┐рд░рд╛рдХрд░рдгреЗ рдЖрдгрд┐ рдХрд╛рд╣реА рдмрджрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд рдЬреНрдпрд╛рдВрдЪрд╛ рдмреЕрдХрд╡рд░реНрдб рд╕реБрд╕рдВрдЧрддрддреЗрд╡рд░ рдХрд┐рд░рдХреЛрд│ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЛ.

рдЖрд╡реГрддреНрддреА резреж.рекрел рд╣реА рдирд╡реАрди рдкреНрд░рдХрд▓реНрдк рджреЗрдЦрднрд╛рд▓рдХрд░реНрддреНрдпрд╛рдВрдиреА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рдкрд╣рд┐рд▓реА рдЖрд╡реГрддреНрддреА рдЖрд╣реЗ, рдЬреА PCRE рдЖрдгрд┐ PCRE10.45 рдкреНрд░рдХрд▓реНрдкрд╛рдВрдЪреЗ рдирд┐рд░реНрдорд╛рддреЗ рдЖрдгрд┐ рджреЗрдЦрднрд╛рд▓рдХрд░реНрддрд╛ рдлрд┐рд▓рд┐рдк рд╣реЗрдЭрд▓ рдпрд╛рдВрдЪреЗ рдЖрднрд╛рд░ рдорд╛рдирддреЗ.

рд╕реНрдкрд┐рд╕реНрдХреЛрдХ рдЗрдЭреНрдорд┐рдиреЗрдиреА:

  • JIT рд╕рдВрдХрд▓рди рдкреНрд░рдХрд▓реНрдк рд╕реНрд▓рдЬрд┐рдд рдЖрддрд╛ рдЧрд┐рдЯ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.
  • рдпреБрдирд┐рдХреЛрдб рдбреЗрдЯрд╛ рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рдЕрдкрдбреЗрдЯ рдХреЗрд▓рд╛ 16.
  • рдпреБрдирд┐рдХреЛрдб Ll, Lt рдЖрдгрд┐ Lu рдЧреБрдгрдзрд░реНрдорд╛рдВрдЪреЗ рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдореЕрдкрд┐рдВрдЧ рдкрд░реНрд▓рд╢реА рдЬреБрд│рдгреНрдпрд╛рд╕рд╛рдареА рдмрджрд▓рдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ. рдкреВрд░реНрд╡реА, /p{Ll}/i рдкреЕрдЯрд░реНрди рдлрдХреНрдд рд▓реЛрдЕрд░рдХреЗрд╕ рд╡рд░реНрдгрд╛рдВрд╢реА рдЬреБрд│рдд рдЕрд╕реЗ (рдЬрд░реА рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬреБрд│рдгреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реА рдЕрд╕рд▓реА рддрд░реАрд╣реА). рд╣рд╛ рдмрджрд▓ [:lower:] рд╕рд╛рд░рдЦреНрдпрд╛ POSIX рд╡рд░реНрдЧрд╛рдВрдЪреНрдпрд╛ рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬреБрд│рдгреАрд╡рд░ рджреЗрдЦреАрд▓ рдкрд░рд┐рдгрд╛рдо рдХрд░рддреЛ.
  • рдирд╡реАрди рдлрдВрдХреНрд╢рди рд╕реНрдХреЕрди_рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд▓реЗ. рд╣рд╛ рдПрдХ рдирд╡реАрди рдкреНрд░рдХрд╛рд░рдЪрд╛ рджрд╛рд╡рд╛ рдЖрд╣реЗ рдЬреЛ рд╕рдмрдкреЕрдЯрд░реНрди рд╡рд┐рд░реБрджреНрдз рдХреЕрдкреНрдЪрд░рд┐рдВрдЧ рдмреНрд▓реЙрдХрдЪреНрдпрд╛ рд╕рд╛рдордЧреНрд░реАрд╢реА рдЬреБрд│рддреЛ.
    рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, b(w++)(*scan_substring:(1).+rh) рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдЕрд╕рд╛ рд╢рдмреНрдж рд╢реЛрдзрддреЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рджреБрд░реНрдорд┐рд│ рдЗрдВрдЧреНрд░рдЬреА рдЕрдХреНрд╖рд░ рдХреНрд░рдо "rh" рдЖрд╣реЗ рдЬреЛ рдЕрдЧрджреА рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдирд╛рд╣реА.
  • рд╕реБрд╕рдВрдЧрдд рдХреЕрд░реЗрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕реЗрд╕рд╕рд╛рдареА рдЬреЛрдбрд▓реЗрд▓рд╛ рд╕рдкреЛрд░реНрдЯ рдпреВрдЯреАрдПрд╕#резрео (рдпреБрдирд┐рдХреЛрдб рд░реЗрдЧреНрдпреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдиреНрд╕), рдирд╡реАрди PCRE2_ALT_EXTENDED_CLASS рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░реВрди. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЕрд░реЗрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕реЗрд╕рдордзреНрдпреЗ рдореЗрдЯрд╛рдХреЕрд░реЗрдХреНрдЯрд░ рдореНрд╣рдгреВрди [ рдЖрдгрд┐ рдСрдкрд░реЗрдЯрд░реНрд╕ &&, тАФ рдЖрдгрд┐ ~~ рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЕрд░реЗрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕реЗрд╕рдЪреЗ рд╡рдЬрд╛рдмрд╛рдХреА рдЖрдгрд┐ рдЫреЗрджрдирдмрд┐рдВрджреВ рд╕рд╣рдЬрдкрдгреЗ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
    рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдерд╛рдИ рдХрд┐рдВрд╡рд╛ рдЧреНрд░реАрдХ рдЕрдХреНрд╖рд░реЗ рдЬреБрд│рд╡рдгреНрдпрд╛рд╕рд╛рдареА (рдкрдг рддреНрдпрд╛ рд▓рд┐рдкреАрдВрдордзреАрд▓ рдЕрдХреНрд╖рд░реЗ рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рд╡рд░реНрдг рдирд╛рд╣реА), рддреБрдореНрд╣реА [p{L}&&[p{Thai}||p{Greek}]] рд╣рд╛ рд╢рдмреНрджрдкреНрд░рдпреЛрдЧ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.
  • (?[тАж]) рд╕рд┐рдВрдЯреЕрдХреНрд╕ рд╡рд╛рдкрд░реВрди рдкрд░реНрд▓-рд╢реИрд▓реАрддреАрд▓ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд░реНрдг рд╡рд░реНрдЧрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ. рд╣реЗ рд╡рд░реНрдг рд╡рд░реНрдЧрд╛рдВрдЪреЗ рд╡рдЬрд╛рдмрд╛рдХреА рдЖрдгрд┐ рдЫреЗрджрдирдмрд┐рдВрджреВ рд╡реНрдпрдХреНрдд рдХрд░рдгреНрдпрд╛рд╕ рджреЗрдЦреАрд▓ рдЕрдиреБрдорддреА рджреЗрддреЗ, рдкрд░рдВрддреБ рддреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реНрдпрд╛ рд╡рд╛рдХреНрдпрд░рдЪрдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдпреВрдЯреАрдПрд╕#резрео (рдпреБрдирд┐рдХреЛрдб рд░реЗрдЧреНрдпреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдиреНрд╕).
    рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдерд╛рдИ рдХрд┐рдВрд╡рд╛ рдЧреНрд░реАрдХ рдЕрдХреНрд╖рд░реЗ рдЬреБрд│рд╡рдгреНрдпрд╛рд╕рд╛рдареА (рдкрдг рддреНрдпрд╛ рд▓рд┐рдкреАрдВрдордзреАрд▓ рдЕрдХреНрд╖рд░реЗ рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рд╡рд░реНрдг рдирд╛рд╣реА), рддреБрдореНрд╣реА (?[p{L} & (p{Thai} + p{Greek})]) рд╣рд╛ рд╢рдмреНрджрдкреНрд░рдпреЛрдЧ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.
  • рдХреЕрд░реЗрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕ рдореЕрдЪрд┐рдВрдЧ рдореЗрдХреЕрдирд┐рдЭрдордордзреНрдпреЗ рд▓рдХреНрд╖рдгреАрдп рд╕реБрдзрд╛рд░рдгрд╛. рдХрдВрдкрд╛рдИрд▓ рдХреЗрд▓реЗрд▓реЗ рдХреЕрд░реЗрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕реЗрд╕ рдЖрддрд╛ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕реЗрдЯрд╡рд░ рдмрд╛рдпрдирд░реА рд╕рд░реНрдЪ рд╡рд╛рдкрд░реВрди рдореЛрдареНрдпрд╛ рдХрд┐рдВрд╡рд╛ рдЬрдЯрд┐рд▓ рдХреЕрд░реЗрдХреНрдЯрд░ рд╕реЗрдЯрд╕рд╛рдареА рдЬрд▓рдж рдЬреБрд│рдгреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд.
  • рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА API рдордзреНрдпреЗ pcre2_set_optimize() рд╣реЗ рдирд╡реАрди рдлрдВрдХреНрд╢рди рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • pcre2_substitute() рдлрдВрдХреНрд╢рдирдордзреНрдпреЗ рдЕрдиреЗрдХ рд╕реБрдзрд╛рд░рдгрд╛.
  • рдЗрддрд░ рд╕реБрдзрд╛рд░рдгрд╛ рдЖрдгрд┐ рджреЛрд╖ рдирд┐рд░рд╛рдХрд░рдгреЗ.

рд╕реНрддреНрд░реЛрдд: linux.org.ru

DDoS рд╕рдВрд░рдХреНрд╖рдг, VPS VDS рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдЗрдЯрд╕рд╛рдареА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЦрд░реЗрджреА рдХрд░рд╛ ЁЯФе рдбреАрдбреЙрд╕ рд╕рдВрд░рдХреНрд╖рдгрд╛рд╕рд╣ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ, рд╡реНрд╣реАрдкреАрдПрд╕ (VPS) рд╡реНрд╣реАрдбреАрдПрд╕ (VDS) рд╕рд░реНрд╡реНрд╣рд░реНрд╕ рдЦрд░реЗрджреА рдХрд░рд╛ | ProHoster