рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдХреИрд▓рдо рдореИрдХреНрд░реИ рд╕реЗ 10 рд░реЗрдЧреЗрдХреНрд╕ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЪреБрдиреМрддреА рдХреЗ рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд░рд▓ рдФрд░ рдФрд╕рдд рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ - рдХреЗрд╡рд▓ рд░реЗрдЧреАрдХреНрд╕, рдХреЗрд╡рд▓ рдХрдЯреНрдЯрд░ред
рдЪреВрдВрдХрд┐ рдЪреБрдиреМрддреА рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИ, рдореЗрд░реЗ рдЬреИрд╕реЗ рд╕рднреА рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рд╛ рдореЗрдВ рдЙрддреНрддреАрд░реНрдг рд╣реЛрдирд╛ 100% рд╣реИ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╕реБрдкрд░ рдкреЗрд╢реЗрд╡рд░ рд╣реИрдВред рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
рд╣рд╛рдВ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдпрд╣ рдЪреБрдиреМрддреА рдкрд╣рд▓реЗ рд╣реА рдПрдХ рдмрд╛рд░ рдкреЛрд╕реНрдЯ рдХреА рдЬрд╛ рдЪреБрдХреА рд╣реИред рд▓реЗрдХрд┐рди рдкреЛрд╕реНрдЯ рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рдХрд╛рдо рдХреЗ рд╕рдорд╛рдзрд╛рди рдкреЗрд╢ рдирд╣реАрдВ рдХрд┐рдП, рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рд▓реЛрдЧ рдЖрдЧреЗ рдХреА 4 рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ, рдФрд░ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд╛рд░реНрдп рдХреЗ рдЕрд░реНрде рдФрд░ рд╡реЗ рдЙрдирд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╣ рднреА рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдПред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЕрдиреБрд╡рд╛рдж, рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдФрд░ рд╕рднреА рдирд┐рд░реНрднрд░ рдмрдиреНрд╕ рдХреЗ рд╕рд╛рдеред
рдХрд╛рд░реНрдп 1 - рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╢рдмреНрджреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВ
http://callumacrae.imtqy.com/regex-tuesday/challenge1.html
рд╡рд╛рдХреНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЗрд╕ рд╡рд╛рдХреНрдп рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╢рдмреНрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╢рдмреНрджреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
This is is a test
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, "рд╢рдмреНрдж" рджреЛ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмреЛрд▓реНрдб рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
This is <strong>is</strong> a test
рдорджрджрд╢рдмреНрджреЛрдВ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рд╢рдмреНрджреЛрдВ рдХреЛ рдПрдХ рд╕реНрдерд╛рди рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП - рдПрдХ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдЪрд░рд┐рддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ, рдХреЗрд╡рд▓ рдмреИрдХ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИред
рдирд┐рд░реНрдгрдпрдЕрднрд┐рд╡реНрдпрдХреНрддрд┐:
/\b([\w']+)\s(\1)\b/gi
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди:
$1 <strong>$2</strong>
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди- "рдмреА" - рд╢рдмреНрдж рд╕реАрдорд╛ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
- "([\ w '] +)" - рдЕрдХреНрд╖рд░реЛрдВ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рдПрдкреЛрд╕реНрдЯреНрд░реЛрдл рдХреА рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ (рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рд╕реНрдерд╛рди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд╕рд╛рде рднреА рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ рдЗрд╕реЗ рд╕рдореВрд╣ рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдЗрд╕ рд╕рдореВрд╣ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- "s (\ 1)" - рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдмрд╛рдж рдЖрддреА рд╣реИ, рд╣рдо рдПрдХ рд╕реНрдерд╛рди рдбрд╛рд▓рддреЗ рд╣реИрдВ "\" рдФрд░ рдлрд┐рд░ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЙрд╕рдХреЗ рдмрд╛рдж рдкрд╣рд▓реЗ рдкрдХрдбрд╝реЗ рдЧрдП рдкрд╣рд▓реЗ рд╕рдореВрд╣ рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ "(\ 1)" рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- "рдмреА" - рджреЛрд╣рд░рд╛рд╡ рд╢рдмреНрдж рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╣рдо рд╢рдмреНрдж рдХреЗ рдХреЗрд╡рд▓ рднрд╛рдЧ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЙрдард╛рддреЗ рд╣реИрдВред
рдЯрд╛рд╕реНрдХ 2 - рдЧреНрд░реЗрд╕реНрдХреЗрд▓
http://callumacrae.imtqy.com/regex-tuesday/challenge2.html
рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рд░рдВрдЧ рдХреЛрдб рд╣реИрдВ, рдХрд╛рд░реНрдп рд╕рднреА рд░рдВрдЧреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
рдорд╛рдиреНрдп рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг:
#eEe #6F6F6F rgb(2.5, 2.5,2.5) hsl(0, 10%, 100%)
рдЕрдорд╛рдиреНрдп рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг:
#eEf #11111e rgb(1.5%, 1.5%, 1.6%) hsl(20, 20%, 20%)
рдХреЛрдб рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгрдЗрд╕ рдХрд╛рд░реНрдп рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рдЧреНрд░реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЧреНрд░реЗ рд╣реИ:
RGB рд░рдВрдЧ рдореЙрдбрд▓ рдХреЗ рддреАрди рдкреНрд░рд╛рдердорд┐рдХ рд░рдВрдЧреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдкреНрд░рд╛рдкреНрдд рд░рдВрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ - рд╕рдорд╛рди рд╕рд╛рдВрджреНрд░рддрд╛ рдореЗрдВ рд▓рд╛рд▓, рд╣рд░рд╛ рдФрд░ рдиреАрд▓рд╛ред
# рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рд╣реЗрдХреНрд╕ рдкреНрд░рд╛рд░реВрдк рд╣реИрдВ, рдпрд╣ рджреЛ рд░реВрдкреЛрдВ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╕рдВрдХреНрд╖рд┐рдкреНрдд, рддреАрди рд╡рд░реНрдг (#rgb) рдФрд░ рдкреВрд░реНрдг, рдЫрд╣ рд╡рд░реНрдг $ rrggbbред рдЬрд╣рд╛рдБ r, g, b рддреАрди рдкреНрд░рд╛рдердорд┐рдХ рд░рдВрдЧ рд╣реИрдВред
рдЖрд░рдЬреАрдмреА (рдЖрд░, рдЬреА, рдмреА) рдХреЛрдб рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИрдВ, рд╡реЗ рдХреЗрд╡рд▓ 0 рд╕реЗ 255 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред
рдПрдЪрдПрд╕рдПрд▓ рдкреНрд░рд╛рд░реВрдк рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдпрд╣рд╛рдВ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдорддрд▓рдм рдЯреЛрди, рд╕рдВрддреГрдкреНрддрд┐ рдФрд░ рд▓рдкрдЯ рд╣реИред рддреАрди рдкреНрд░рд╛рдердорд┐рдХ рд░рдВрдЧреЛрдВ рдХреЛ рд╕рдорд╛рди рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдХрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕ рджреГрд╢реНрдп рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдорджрджрд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП, рд╕рд╣реА рдШрдЯрдирд╛ рд╕рднреА рддреАрди рд╡рд░реНрдгреЛрдВ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реЛрдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП #aaaред рдкреВрд░реНрдг рд╣реЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП, рджреЛ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП # рд╕реАрдлред рдбрд┐рдЬрд┐рдЯрд▓ рдЖрд░рдЬреАрдмреА рдХреЗ рд▓рд┐рдП, рдЕрдВрдХреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрд░рдЬреАрдмреА (2, 2, 2)ред Hsl рдлреЙрд░реНрдореЗрдЯ рдХреЛ рд╕рдордЭрдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЙрдкрд░реЛрдХреНрдд рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдБ рдЧреНрд░реЗ рд░рдВрдЧ рд╡рд╣ рд░рдВрдЧ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЯреЛрди 0 рд╣реИ рдпрд╛ рд╕рдВрддреГрдкреНрддрд┐ 0 рдпрд╛ 100 рд╣реИред
рддрджрдиреБрд╕рд╛рд░, рдкрд┐рдЫрд▓реЗ рдХрд╛рд░реНрдп рдХреА рддрд░рд╣, рдЖрдкрдХреЛ рдмреИрдХ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдореА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдмрдбрд╝реА рд╣реЛрдЧреА (рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ), рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рдирдореЗрдВ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдирд┐рд░реНрдгрдп /^(?:#(\w)\1\1|#(\w{2})\2\2|rgb\(((?:\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])%?(?:\.\d+)?),[ ]?[0]*\3,[ ]?[0]*\3\)|rgba\(([\d.]+%?),[0 ]*\4,[0 ]*\4,[^)]+\)|hsla?\([\d.]+,[ ]*(0%[^)]+|[\d.]+%,[ ]*(0|100)%[^\)]*)\))$/i
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рдирдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд░рдЧреБрд▓рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдЙрдирдХрд╛ рдЕрд▓рдЧ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ:
#(\w)\1\1
- "(\ w)" рд╕рдореВрд╣ рдореЗрдВ рдПрдХ рдПрдХрд▓ рд╡рд░реНрдг рд▓реЗрдВред
- "\ 1 \ 1" - рдФрд░ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕реЗ 2 рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рджреЛ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдмрд╛рдд - рдореИрдВ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛ рдирд╣реАрдВред
rgb\(((?:\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])%?(?:\.\d+)?),[ ]?[0]*\3,[ ]?[0]*\3\)
рдореИрдВ "рдЖрд░рдЬреАрдмреАрдП" рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдорд╛рдорд▓рд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрдм рдЖрд░рдЬреАрдмреА () рдореЗрдВ рдЪреМрдерд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрд░рдЬреАрдмреА рдФрд░ рдЖрд░рдЬреАрдмреАрдП рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- "[d {1,2} | 1 \ d {2} | 2 [0-4] \ dред 25 [0-5]" - рд╕реАрдорд╛ 0 рд╕реЗ 255 рддрдХ рд╣реИред рдореИрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЖрдк рдпрд╣рд╛рдВ 5 рдХрд╛рд░реНрдп рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред
- "??: \ _ред \ d +)?" - рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдореВрд╣ рдЬрд┐рд╕рдХрд╛ рдирдВрдмрд░ рдЕрд╕рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдбреЙрдЯ рдФрд░ рдПрдХ рдирдВрдмрд░ рдХреЗ рдмрд╛рдж рдПрдХ рдбреЙрдЯ рд╕рдВрднрд╡ рд╣реИ (рдпрд╣ рдЧреИрд░-рдкреВрд░реНрдгрд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИ)ред
- ", []? [0] * \ 3" - рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо, рдЗрд╕рдХреЗ рдмрд╛рдж 0 рдпрд╛ 1 рд╕реНрдерд╛рди, 0 рдпрд╛ рдХрдИ рд╢реВрдиреНрдп, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкрд╣рд▓реЗ рдкрдХрдбрд╝реЗ рдЧрдП рд╕рдореВрд╣ рдХреЗ рдореВрд▓реНрдп рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрд░рдЬреАрдмреАрдП () рдореЗрдВ - рдПрдХ рд╣реА рдЪреАрдЬ, рд▓реЗрдХрд┐рди 4 рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
hsla?\([\d.]+,[ ]*(0%[^)]+|[\d.]+%,[ ]*(0|100)%[^\)]*)\)
рдпрд╣рд╛рдВ, рдПрдХ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ, рдЖрдкрдХреЛ hsl рдФрд░ hsla рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдереЛрдбрд╝рд╛ "hsla" рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реИ?
- "[\ dред] +, [] *" - рдкрд╣рд▓реЗ рдЖрд╡рд╢реНрдпрдХ рдирдВрдмрд░ рдЖрддрд╛ рд╣реИ "[\ dред] +" (рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╕рдВрдЦреНрдпрд╛ рд╕рд╣рд┐рдд) рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдФрд░ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдерд╛рди "[] *"ред
- "(0% [^)] + | [\ dред] +%, [] * (0 | 100)% [^]] *" - рдФрд░ рдлрд┐рд░ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╕рдВрднрд╡ рд╣реИрдВ: 1) рдЬрд╣рд╛рдВ 0% рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдХреЛрдИ рдмреНрд░реИрдХреЗрдЯ рдХреЗ рд╕рдорд╛рдкрди рдЪрд░рд┐рддреНрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдЪрд░рд┐рддреНрд░ [^)] +; 2) рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рддрд┐рд╢рдд рдЪрд┐рд╣реНрди рдФрд░ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо "[\ dред] +%," рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдпрд╛ рддреЛ 0% рдпрд╛ 100% "(0 | 100)%"ред
рдХрд╛рд░реНрдп 3 - рддрд┐рдерд┐рдпрд╛рдВ рдвреВрдВрдвреЗрдВ
http://callumacrae.imtqy.com/regex-tuesday/challenge3.html
рддрд╛рд░реАрдЦреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЗрди рддрд╛рд░реАрдЦреЛрдВ рдореЗрдВ 1000 рд╕реЗ 2012 рддрдХ рдХреА рддрд╛рд░реАрдЦреЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реИрдВ, рдЬреЛ рдХрд┐ YYYY / MM / DD HH: MM (: SS) рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реИрдВред рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрдХреНрд╖рд░ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдФрд░ рдХреЛрд╖реНрдардХ рдореЗрдВ рдПрдХ рд╢рд░реНрдд рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг
2001/09/30 23:59:11
рдорджрдж"[0-9]" рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ 0-9 рдХрд╛ рдПрдХрд▓ рд╡рд░реНрдг рдорд╛рдиреНрдп рд╣реИред рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЛрдВ рд╕реЗ рдЖрдк рд╡рд╛рдВрдЫрд┐рдд рд╕реАрдорд╛ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг: "1 [0-9]" - 10 рд╕реЗ 19 рддрдХ рдХреА рд╕реАрдорд╛ред
рдирд┐рд░реНрдгрдп /^(1[\d]{3}|200\d|201[0-2])\/(0[1-9]|1[0-2])\/(0[1-9]|1[0-9]|2[0-9]|3[0-2])\s(0[0-9]|1[0-9]|2[0-3]):([0-5][\d])(:([0-5][\d]))?$/
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди- рд╡реИрдз рд╡рд░реНрд╖ "" (1 [\ d] {3} | 200 \ d | 201 [0-2]) "рд╣реИ, рдЬрд╣рд╛рдВ 1000 рд╕реЗ 1999 рддрдХ, 2000 рд╕реЗ 2009 рддрдХ, 2010 рд╕реЗ 2012 рддрдХред
- рдорд╣реАрдирд╛ "(0 [1-9]] | 1 [0-2])"ред 01 рд╕реЗ 09 рддрдХ рдФрд░ 10 рд╕реЗ 12 рддрдХред
- рджрд┐рди "(0 [1-9]] | 1 [0-9] | 2 [0-9] | 3 [0-2])"ред 01 рд╕реЗ 09 рддрдХ рдФрд░ 10 рд╕реЗ 19 рддрдХ, 20 рд╕реЗ 29 рддрдХ рдФрд░ 30 рд╕реЗ 32 рддрдХред
- рдШрдВрдЯрд╛ "(0 [0-9]] | 1 [0-9] | 2 [0-3])"ред 00 рд╕реЗ 09 рддрдХ рдФрд░ 10 рд╕реЗ 19 рддрдХ, 20 рд╕реЗ 23 рддрдХред
- рдорд┐рдирдЯ "([0-5] [\ d])"ред 00 рд╕реЗ 59
- (: ([0-5] [\ d]))? - рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реЗрдХрдВрдб, 00 рд╕реЗ 59 рддрдХред
рдХрд╛рд░реНрдп 4 - рдЗрдЯреИрд▓рд┐рдХ
http://callumacrae.imtqy.com/regex-tuesday/challenge4.html
рдорд╛рд░реНрдХрдбрд╛рдЙрди рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рда рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рд╣рдмреНрд░реЗ рдкрд░)ред рдЖрдкрдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓рд┐рдЦрдиреА рд╣реЛрдЧреА рдЬреЛ рддрд╛рд░рд╛рдВрдХрди рдХреЗ рдмреАрдЪ рдХреЗ рд╢рдмреНрджреЛрдВ рдХреЛ <em> рдЯреИрдЧ рд╕реЗ рдмрджрд▓ рджреЗрдЧреАред
рдЙрджрд╛рд╣рд░рдг
*This text is italic.* -> <em>This text is italic.</em>
рдорджрджрдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдПрдХ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рддрд╛рд░рд╛рдВрдХрди рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдХреА рдУрд░ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ (рд╕рдмрд╕реЗ рд╕рд░рд▓, рд▓реЗрдХрд┐рди рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд╣реАрдВ рд╣реИред)
рдирд┐рд░реНрдгрдпрдЕрднрд┐рд╡реНрдпрдХреНрддрд┐:
/(^|[^*])\*([^*].*?[^*]|[^*])\*((?!\*)|$)/g
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди:
$1<em>$2</em>
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди- "(^ | [^ *]]" - рд╣рдо рдпрд╛ рддреЛ рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдпрд╛ рдПрдХ рддрд╛рд░рд╛рдВрдХрди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рдЪрд░рд┐рддреНрд░ рд╕реЗред рд╕рдореВрд╣ рдХреЛ рдЗрд╕ рдкреНрд░рддреАрдХ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ <em> рдЯреИрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- ((? *! *) | $) - рд╣рдо рдпрд╛ рддреЛ рд▓рд╛рдЗрди рдХреЗ рдЕрдВрдд рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдпрд╛ рдХрд┐рд╕реА рддрд╛рд░рд╛рдВрдХрди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рдЪрд░рд┐рддреНрд░ рдХреЗ рд╕рд╛рде, рдпрд╣рд╛рдБ рд╕реЗ рдЭрд╛рдБрдХрдиреЗ рдХреЗ рдмрд╛рдж - рд╕реНрдерд╛рди рдкрд░ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рд╣реИред
- "" ([* *]ред *? [^ *] | [^ *]] "- рдмреАрдЪ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕" ^ ^ *] рд╣реИред *! [[* *] "рдХреЛрдИ рднреА рдкрд╛рда рдЬреЛ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рдЕрдВрдд рдХреЗ рд╕рд╛рде рддрд╛рд░рд╛рдВрдХрди рдФрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╛ "| [^ *]" рдХреЗрд╡рд▓ рдЯреИрдЧ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╣реА рдЪрд░рд┐рддреНрд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ (рдпрд╣ рдкрд░реАрдХреНрд╖рд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ)ред
http://callumacrae.imtqy.com/regex-tuesday/challenge5.html
рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рд╕реЗ, рдХреЗрд╡рд▓ рд╕рд╣реА рдкреНрд░рд╛рд░реВрдк рд╡рд╛рд▓реЗ рдЕрдВрдХреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВ рд╕реЗ рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рддреАрди рдЕрдВрдХреЛрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд╣реА рдврдВрдЧ рд╕реЗ рджрд░реНрдЬ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
1,024 8,205,500.4672 10.444444444444 30 000,7302
рдорджрджрдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕рдВрдЦреНрдпрд╛рдПрдВ рджрд╛рдИрдВ рд╕реЗ рдмрд╛рдИрдВ рдУрд░ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ, рди рдХрд┐ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрдЦреНрдпрд╛ 1-3 рдЕрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдХреЗрд╡рд▓ рддреАрди рдЕрдВрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЧреИрд░-рдкреВрд░реНрдгрд╛рдВрдХ рднрд╛рдЧ рдореЗрдВ рдЬрд┐рддрдиреА рдЪрд╛рд╣реЗрдВ рдЙрддрдиреА рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ (рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ)ред рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд╕рдореВрд╣реЛрдВ рдХрд╛ рд╡рд┐рднрд╛рдЬрдХ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдпрд╛ рдПрдХ рд╕реНрдерд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ рдЧреИрд░ рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд╛рд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рд╡рд┐рднрд╛рдЬрдХ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдпрд╛ рдЕрд╡рдзрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд░реНрдгрдпрдЕрднрд┐рд╡реНрдпрдХреНрддрд┐:
/^\d{1,3}([ ,]\d{3})*([.,]\d+)?$/
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди- "^ \ d {1,3}" - 1 рд╕реЗ 3 рдЕрдВрдХреЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВред
- "([,] \ d {3}) *" - рдЖрдЧреЗ рдПрдХ рд╡рд┐рднрд╛рдЬрдХ рдФрд░ 3 рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣, рдПрдХ рддрд╛рд░рд╛рдВрдХрди рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдкреНрд░рд╛рд░реВрдк 0 рдпрд╛ рдХрдИ рдмрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- "([ред,] \ d +)? $" - рдЕрдВрдд рдореЗрдВ рдПрдХ рд╡рд┐рднрд╛рдЬрдХ рдФрд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдореВрд╣ рд╣реИ, рдПрдХ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдПрдХ рдорд╛рддреНрд░рд╛ рд╣реИ рдЬреЛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реНрдгрд╛рдВрдХ рднрд╛рдЧ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдПрдХ рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рд╣реИред
рдЯрд╛рд╕реНрдХ 6 - рдЖрдИрдкреА рдкрддреЗ
http://callumacrae.imtqy.com/regex-tuesday/challenge6.html
рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреА рд╕реВрдЪреА рд╕реЗ, рдорд╛рдиреНрдп рдЖрдИрдкреА рдкрддреЗ рдвреВрдВрдвреЗрдВред рд╢рд╛рдпрдж рд╕рднреА рдХрд╛ рд╕рдмрд╕реЗ рдиреАрд░рд╕ рдХрд╛рдоред рдЗрддрдирд╛ рд╕реБрдкрд░-рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдирд╣реАрдВ, рдХрд┐рддрдирд╛ рдбрд░реА-рд╕рд╣рдореАред
рдорд╛рдиреНрдп IP рдкрддрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдЙрджрд╛рд╣рд░рдг:
- 192.0.2.235 - рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рджрд╢рдорд▓рд╡ред
- 0300.0000.0002.0353 - рдбреЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЕрд╖реНрдЯрдХред
- 0xC0.0x00.0x02.0xEB - рдбреЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ред
- 0xC00002EC - рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ред
- 287454020 - рджрд╢рдорд▓рд╡ред
- 030000001353 - рдЕрд╖реНрдЯрд╛рдзрд╛рд░реАред
рд╡рд┐рднрд┐рдиреНрди рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдирд╛ рдмреБрд░рд╛ рд╣реИред рдЦрд╛рд╕рддреМрд░ рдкрд░ рдирдВрдмрд░ред рд╕реНрдерд┐рддрд┐ рдЗрд╕ рддрдереНрдп рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдбреЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдИрдкреА-рдкрддреЗ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдорд┐рд╢реНрд░рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - 0xFF.255.0377.0x12ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореЗрд░реА рд░рд╛рдп рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмреБрд░рд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдРрд╕реЗ рд╡рд┐рдХрд▓реНрдк рд╕рдВрднрд╡ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдорджрдж- 192.0.2.235 - рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рджрд╢рдорд▓рд╡ред рдЕрдВрдХ (рдорд╛рди 0 рд╕реЗ 255 рддрдХ) рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрдВрдХрди 1 рд╕реЗ 3 рдЕрдВрдХреЛрдВ рддрдХ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- 0300.0000.0002.0353 - рдбреЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЕрд╖реНрдЯрдХред 0 рд╕реЗ 7 рддрдХ рдХреЗ рдорд╛рди рд╡рд╛рд▓реЗ рдЕрдВрдХреЛрдВ рдХреЗ рдмреАрдЪ 4 рдЕрдВрдХред
- 0xC0.0x00.0x02.0xEB - рдбреЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ред рдбреЙрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдЪрд╛рд░ рд╡рд░реНрдгред "0x" рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рдирд╛, рдлрд┐рд░ рджреЛ рд╡рд░реНрдг (рдЕрдВрдХреЛрдВ рд╕реЗ рдпрд╛ "a" рд╕реЗ "f" рддрдХ)ред
- 0xC00002EC - рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ред "0x" рдЕрдЧреНрд░рдгреА, рдлрд┐рд░ 8 рдЕрдХреНрд╖рд░ (рдЕрдВрдХ рдорд╛рди рдпрд╛ "рдП" рд╕реЗ "рдПрдл")ред
- 287454020 - рджрд╢рдорд▓рд╡ред рд╕реАрдорд╛ рдореЗрдВ 0 рд╕реЗ 4294967295 рддрдХ рдХреЛрдИ рднреА рд╕рдВрдЦреНрдпрд╛ред
- 030000001353 - рдЕрд╖реНрдЯрд╛рдзрд╛рд░реАред рдЕрдЧреНрд░рдгреА 0. рд╕рдВрдЦреНрдпрд╛рдПрдБ 0 рд╕реЗ 7 рддрдХ рд╣реИрдВред рд╕реАрдорд╛ 0 рд╕реЗ 07777777777777 рддрдХ рд╣реИред
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╣реЛрдЧреАред
рдирд┐рд░реНрдгрдп /^((((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])|(0x[\da-f]{2})|([0-7]{4}))\.){3}(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])|(0x[\da-f]{2})|([0-7]{4})))|(0x[\da-f]{8})|(0([0-7]{1,11}))|(2874540[2-8][0-9]|28745409[0-9]|287454[1-9][0-9]{2}|28745[5-9][0-9]{3}|2874[6-9][0-9]{4}|287[5-9][0-9]{5}|28[89][0-9]{6}|29[0-9]{7}|[3-9][0-9]{8}|[1-3][0-9]{9}|4[01][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[01][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))$/i
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рдирдбреЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдИрдкреА-рдПрдбреНрд░реЗрд╕ рдХреЗ рд▓рд┐рдП, рдорд┐рд╢реНрд░рдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо "" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд▓реНрдк рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреИрдЯрд░реНрди рджреНрд╡рд╛рд░рд╛: ((рджрд╢рдорд▓рд╡ | рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ | рдСрдХреНрдЯрд▓)ред) {3} (рджрд╢рдорд▓рд╡ | рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ | рдСрдХреНрдЯрд▓)ред
- "(\ d | [1-9] \ dред 1 \ d \ d | 2 [0-4] \ dред 25 [0-5])" - рджрд╢рдорд▓рд╡ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдПред
- "(0x [\ da-f] {2})" - рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рдеред
- "([4-7] {4})" - рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рдСрдХреНрдЯрд▓ рдХреЗ рд▓рд┐рдПред
рдФрд░ рдЕрдиреНрдп рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк:
- "(0x [\ da-f] {8})" - рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕рдВрдХреЗрддрди рдХреЗ рд▓рд┐рдПред
- "(2874540 [2-8] [0-9] | 28745409 [0-9] | 287454 [1-9] [0-9] {2} | 28745 [5-9] [0-9] {3} | 2874 [6-9] [0-9] {4} | 287 [5-9] [0-9] {5} | 28 [89] [0-9] {6} | 29 [0-9] {7} | [3-9] [0-9] {8} | [1-3] [0-9] {9} | 4 [01] [0-9] {8} | 42 [0-8] ] [0-9] {|}} | рекреи реп [режрей] [реж- реп] {рем} | рекреи реп рек [реж]] [реж-реп] {рел} | рекреи реп рек [реж-реж] [реж- реп] ] {рек}} | рекреи реп рекремрем [реж-рем] [реж- реп] {рей} | рекреи реп рекремрем [[режрез] [реж-реп] {реи} | рекреи реп рек реп рем [реи [реж-реж] [реж-реп] | рекреи реп рек29рем [реи реп / реж-рел ]) "- рджрд╢рдорд▓рд╡ рд╕рдВрдХреЗрддрди рдХреЗ рд▓рд┐рдПред рдФрд░ рдпрд╣рд╛рдБ, рдореБрдЭреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХ рдЫреЛрдЯреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдкрд░реАрдХреНрд╖рдг рд░реЗрдВрдЬ рдореЗрдВ рдХреЗрд╡рд▓ рджрд╢рдорд▓рд╡ рдЖрдИрдкреА рдкрддреЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рдзреЛрдЦрд╛ рджрд┐рдпрд╛ред рдЕрдЪреНрдЫреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдЖрдкрдХреЛ 0 рд╕реЗ 4294967295 рдкрд░ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ред
- (0 ([4-7] {1,11})) - рдЕрд╖реНрдЯрдХ рдиреЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдПред
рдЯрд╛рд╕реНрдХ 7 - рдпреВрдЖрд░рдПрд▓
http://callumacrae.imtqy.com/regex-tuesday/challenge7.html
рдпреВрдЖрд░рдПрд▓ рдХреА рд╕реВрдЪреА рд╕реЗ, рдорд╛рдиреНрдп рдЦреЛрдЬреЗрдВред
рдорд╛рдиреНрдп рдкрддреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг:
http://ab https://example.com/ http://test.this-test.com/ http://1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa
рдорджрджрдкрддрд╛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ http: // рдпрд╛ https: // рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдПрдХ рд╕реНрд▓реИрд╢, рдПрдХ рдкрддреНрд░ (рдпрджрд┐ рдПрдХ рдбреЛрдореЗрди) рдпрд╛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдЕрдЧрд░ рдПрдХ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдбреЛрдореЗрди рдореЗрдВ рдПрдХ рдЙрдкрдбреЛрдореЗрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдбреЛрдореЗрди рдХреА рд▓рдВрдмрд╛рдИ 63 рд╡рд░реНрдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рдХреБрд▓ 255 рд╡рд░реНрдг рд╣реИрдВ ред рдПрдХ рдбреЛрдореЗрди рдПрдХ рдЙрдкрдбреЛрдореЗрди рдореЗрдВ рдШреЛрдВрд╕рд▓рд╛ рдмрдирд╛рдирд╛ 127 рдбреЛрдореЗрди рддрдХ рд╕реАрдорд┐рдд ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд░реЗрдЧреЗрдХреНрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдк рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░реЗрдЧрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдХреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдкрд╛рд░ рдХрд┐рдпрд╛ред
рдирд┐рд░реНрдгрдп /^https?:\/\/(((\b[az\d-]{1,63}\b)\.){1,40}(\b[az\d-]{1,63}\b))\/?$/i
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди- "^ https:? \ / \ /" - http: // рдпрд╛ https: //
рдЖрдЗрдП рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ ((\ b [az \ d -] {1,63} \ b)ред) {1,40}ред
- рдбреЛрдореЗрди рдХреЗ рдЕрдВрдд рдФрд░ рд╢реБрд░реБрдЖрдд рдореЗрдВ "рдмреА" рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдбреЛрдореЗрди рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдЕрдорд╛рдиреНрдп рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
- "az \ d -] {1,63}" - рдбреЛрдореЗрди рдирд╛рдо рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдЕрдВрджрд░, рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╣рд╛рдЗрдлрд╝рди рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ
- "{1.63}" - рдпрд╣ рд╕рдм 63 рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред
- "(рдбреЛрдореЗрди-рдирд╛рдо)ред) {1,40}" - рдореИрдВ рдпрд╣рд╛рдВ 127 рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдорд╛рддреНрд░рд╛рддреНрдордХ рдорд╛рддреНрд░рд╛ {}} рдХрд╛ рдЕрд░реНрде рд╣реИ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдЕрдВрддрд░рд╛рд▓ред рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ [] {} - рдпрд╣ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдорд╛рдорд▓реЗ рдореЗрдВ [] - рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ (рдбреЛрдореЗрди-рдирд╛рдо) рдХреЗ рджреЛрд╣рд░рд╛рд╡ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред)ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ 40 рддрдХ рд╕реАрдорд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд▓рдВрдмрд╛рдИ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рди рд╣реЛ, рдЬрд┐рд╕реЗ рд╣рдо, рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдХрдбрд╝рд╛рдИ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд╛рд░реНрдп 8 - рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡
http://callumacrae.imtqy.com/regex-tuesday/challenge8.html
рдХрд╛рд░реНрдп рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдп 1 рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рджреЛ рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд╕рд╛рде рдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕реВрдЪреА рдХреЗ рджреЛрд╣рд░рд╛рдП рдЧрдП рддрддреНрд╡реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕реА рд╕реВрдЪреА:
* Repeated list item * Repeated list item
рдЗрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
* Repeated list item * **Repeated list item**
рдорджрджрд╣рдо рдПрдХ рдмреИрдХ рд▓рд┐рдВрдХ, рдПрдХ рд▓рд╛рдЗрди рдлреАрдб рдХреИрд░реЗрдХреНрдЯрд░, рдЧреНрд▓реЛрдмрд▓, рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдФрд░ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдирд┐рд░реНрдгрдпрдЕрднрд┐рд╡реНрдпрдХреНрддрд┐:
/^(\*\s+([^\n]+)\n\*\s+)(\2)$/gmi
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди:
$1**$3**
рдЯрд╛рд╕реНрдХ 9 - рдорд╛рд░реНрдХрдбрд╛рдЙрди рд▓рд┐рдВрдХ
http://callumacrae.imtqy.com/regex-tuesday/challenge9.html
HTML рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдорд╛рдиреНрдп рдорд╛рд░реНрдХрдбрд╛рдЙрди рд▓рд┐рдВрдХ рдХреЛ рдмрджрд▓реЗрдВред
рд░реВрдкрд╛рдВрддрд░рдг рдЙрджрд╛рд╣рд░рдг:
[Another](http://example.com/) -> <a href="http://example.com/">Another</a>
рдорджрджрдпрд╣ рдмрд┐рдирд╛ рдЭрд╛рдБрдХреЗ рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд╕рд┐рд░реНрдл рдЖрдЧреЗ рджреЗрдЦрдиреЗ рдХреЗ рд╕рд╛рдеред рдкреАрдЫреЗ рджреЗрдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИред
рдирд┐рд░реНрдгрдпрдЕрднрд┐рд╡реНрдпрдХреНрддрд┐:
/(^|\s+)\[([^\]\[]+)\]\s*\((https?:\/\/\b[az\d-]+\b(\.[az-]+)*\.\w+\/*)\)(?=$|\s+)/i
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди:
$1<a href="$3">$2</a>
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди- "(^ | \ s +)" - рдорд╛рд░реНрдХрдбрд╛рдЙрди рд▓рд┐рдВрдХ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╛ рддреЛ рд▓рд╛рдЗрди рдпрд╛ рд╕реНрдкреЗрд╕ рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рд╣рдо рдЗрд╕реЗ $ 1 рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рд╕реНрдерд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореВрд╣ рдореЗрдВ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред
- "[([^] [] +]] \ _ *" - рд╢реАрд░реНрд╖рдХреЛрдВ рдореЗрдВ рд╡рд░реНрдЧ рдЙрджреНрдзрд░рдг рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рд╡рд░реНрдг рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
- "(https:? \ / \ / \ b [az \ d -] + \ b (? [az -] +) ред \ w + \ / )" - рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ url рдкрддрд╛ рдорд╛рдиреНрдп рд╣реИред
- "? =? $ | \ s +)" - рдЕрдВрдд рдореЗрдВ рдпрд╛ рддреЛ рдПрдХ рд╕реНрдерд╛рди рдпрд╛ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВред
рдЯрд╛рд╕реНрдХ 10 - рдХреАрд╡рд░реНрдб
http://callumacrae.imtqy.com/regex-tuesday/challenge10.html
рд╕рднреА рдХреА рд╕рдмрд╕реЗ рдХрдЯреНрдЯрд░ рдЪреБрдиреМрддреАред рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕рд╛рде рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореМрдЬреВрджрд╛ рдкрд╛рда рдХреЛ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдХреАрд╡рд░реНрдб рдореЗрдВ рдмрджрд▓ рджреЗрдВред
рд╡рд┐рдирд┐рдпрдо:
- рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рдПрдХ рдкреНрд░рдореБрдЦ рд╢рдмреНрдж рд╣реИред
- рд╣рд╛рдЗрдлрд╝рдиреЗрдЯреЗрдб рдирд╛рдо рдПрдХ рдкреНрд░рдореБрдЦ рд╢рдмреНрдж рд╣реИред
- рдЗрд╕ рд╢рдмреНрдж рдореЗрдВ рдПрдкреЛрд╕реНрдЯреНрд░реЛрдл рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рдкреНрд░рддреАрдХ (; - '' ') рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣ рд╣реИ:
рд╕реВрдЬреА рд╕реНрдорд┐рде-рд╣реЙрдкрд░ рдХреЛ рдпрд╣ рди рдмрддрд╛рдПрдВ рдХрд┐ рдореИрдВрдиреЗ рдбреЗрдирд┐рдпрд▓ рдХреЗ рдЦрд┐рд▓реМрдиреЗ рдХреЗ рдШреЛрдбрд╝реЗ рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛
рдЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
рдирд╣реАрдВ, рдмрддрд╛рдУ, Suzie, рд╕реНрдорд┐рде-рд╣реВрдкрд░, рдХрд┐, рдореИрдВ, рддреЛрдбрд╝ рджрд┐рдпрд╛, рдбреИрдирд┐рдпрд▓, рдЦрд┐рд▓реМрдирд╛, рдШреЛрдбрд╝рд╛
рдпрд╣ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд▓рдЧрддрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╕рдВрднрд╡ рдХрд░реЗрдВрдЧреЗред
рдорджрджрдпрд╣ рддрдп рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХрд╣рд╛рдБ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХреЗ рдЖрдЧреЗ рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдХреМрди рд╕рд╛ рдкрдХреНрд╖ред рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдПрдХ рдзрд╛рд░рдгрд╛ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╢рдмреНрдж рдХреЛ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╢рдмреНрдж рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдмрджрд▓реЗ рд╣реБрдП рд╢рдмреНрдж рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдирд┐рд░реНрдгрдпрдЕрднрд┐рд╡реНрдпрдХреНрддрд┐:
/\s(['"])([^'"]+)\1|(;? |['"]? | ['"]|-{2,})(\w+)/g
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди:
,$2$4
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рдирдЪреВрдВрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рддрдп рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдорд╛ рдХреЛ рдХрд┐рд╕ рд╕реНрдерд╛рди рдкрд░ рд░рдЦрдирд╛ рд╣реИ, рд╣рдо рдЗрд╕ рдмрд╛рдд рдХрд╛ рдирд┐рд░реНрдгрдп рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдЗрд╕ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХреЛ рдХрд┐рд╕ рд╕реНрдерд╛рди рд╕реЗ рд╣рдЯрд╛рдПрдВрдЧреЗ рдФрд░ рдХреНрдпрд╛ рд╣рдЯрд╛рдПрдВрдЧреЗред
- "s (['"]) ((^ ^ "" +) "- рд╢рдмреНрдж рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ {space" рдХреЛ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рдХреЗ рд╕реНрдерд╛рди рд╕реЗ { } рджреНрд╡рд╛рд░рд╛ {, рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкреЗрд╕} рд╕реЗ рдмрджрд▓реЗрдВред "рдпрд╣рд╛рдБ" рдХреЗрд╡рд▓ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд░рдЦреЗ рдЧрдП рдЙрджреНрдзрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЧрд▓рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
- "(?; - ['']]? [["] | - {2,}) (\ w + +) "- рдлрд┐рд░ рдПрдХрд▓ рд╢рдмреНрдж рд╣реИрдВ рдЬреЛ рд╡рд░реНрдгреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрди рд╢рдмреНрджреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдоред