рд╣рдо рджреЛ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдорд╛рдирддрд╛ рдФрд░ рдЕрдВрддрд░ рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред
рдЖрдЬ рд╣рдо рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреНрд░рдорд╛рдВрдХрди, JSON, рдирд┐рдпрдорд┐рдд, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдиреНрдп рд▓реЗрдЦ:
- рдкрд╣рд▓рд╛ рднрд╛рдЧ рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг, рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░, рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо, рд╢рдмреНрджрдХреЛрд╖, рд╕реВрдЪрд┐рдпреЛрдВ, рддрд╛рд░, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдШрдирди рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкрддреНрддрд┐ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИред
- рдпрд╣ рд▓реЗрдЦ
- рднрд╛рдЧ рддреАрди : рдЖрдзреБрдирд┐рдХ рдкрд╛рдпрдерди рдФрд░ рдЬреЗрдПрд╕: рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрдЯрд░реНрди (рдПрдл-рд▓рд╛рдЗрди), рд╕реВрдЪреА рдЕрдирдкреИрдХрд┐рдВрдЧ, рд▓реИрдореНрдмреНрдбрд╛ рдлрд╝рдВрдХреНрд╢рди, рд╕реВрдЪреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ, рдЬрдирд░реЗрдЯрд░, рд╕реЗрдЯред
- рдЪреМрдерд╛ рд╣рд┐рд╕реНрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ, рдХрдХреНрд╖рд╛рдПрдВ, рд╡рд┐рд░рд╛рд╕рдд, рд╕реЗрдЯрд░ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рдХреНрд▓рд╛рд╕ рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдмрдирд╛рдирд╛ рдФрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред
JSON
рдХрдИ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЯреНрд░рд╛рдВрд╕рдлрд░ рдФрд░ рдмрд╛рдж рдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП JSON рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕реАрд░рд┐рдпрд▓ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИред
рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдорд╛рдирдХ рдЬреЗрдЯ рдореЙрдбреНрдпреВрд▓ рд╣реИ:
import json json_data = json.dumps(dictionary, indent=4) dictionary = json.loads(json_data)
рдпрд╣рд╛рдБ рд╣рдо JSON рдХреЛ 4 рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
JS рдореЗрдВ, JSON рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдмрдирд╛рдиреЗ рдФрд░ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ:
json_data = JSON.stringify(dictionary, null, 4); dictionary = JSON.parse(json_data);
рдкрд╛рд░реНрд╕ рдирд┐рдпрдорд┐рдд рдХреЗ рд╕рд╛рде рддрд╛рд░
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдореЗрдВ рдЬреЛрдбрд╝рд╛ред рд▓реЗрдХрд┐рди рдПрдХ рд▓рдВрдмреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдХрдИ рдореЗрдВ рдХреИрд╕реЗ рдмрд╛рдВрдЯрд╛ рдЬрд╛рдП, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рд╡рд┐рднрд╛рдЬрдХ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХреА рддрд░рд╣ рдПрдХрд▓ рд╡рд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ? рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ split()
рд╡рд┐рдзрд┐ split()
рдореЗрдВ рдЖрддреА рд╣реИред
рдкрд╛рдпрдерди рдореЗрдВ, split()
рд╡рд┐рдзрд┐ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреИрдЯрд░реНрди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
import re
рдЬреЗрдПрд╕ рдореЗрдВ, split()
рд╡рд┐рдзрд┐ рддрд╛рд░ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ:
рдкреИрдЯрд░реНрди рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдорд┐рдд рдЦреЛрдЬ
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рд░реВрдкреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдИ-рдореЗрд▓ рдкрддреЗ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓реЗрдЦрдХрдирд┐рдпрдорд┐рдд рдХреЗ рд╕рд╛рде рдкрддреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рд╣реИ рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рджреА рдЧрдИ рд╡рд┐рдзрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ
рдкрд╛рдпрдерди рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
import re
рдпрджрд┐ рдкрд╛рда рдХрд╛ рдПрдХ рдЦрдВрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ group()
рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реЗ рдЦрдВрдб рдХреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
0 - рдкреВрд░реА рд▓рд╛рдЗрди (рдЙрдк) рдорд┐рд▓рд╛рди, 1 - рдкрд╣рд▓рд╛ рд╕рдореВрд╣, 2 - рджреВрд╕рд░рд╛, рдЖрджрд┐ред
рдпрджрд┐ рдХреЛрдИ рдорд┐рд▓рд╛рди рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ None
рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рд╡рд╛рдкрд╕ None
рдЬрд╛рдПрдЧреАред
JS рдореЗрдВ, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ match()
рдЬреЛ рдХрд┐рд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ null
рдХреЗ рдорд┐рд▓рд╛рди рдХрд┐рдП рдЧрдП рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдЬреЗрдПрд╕ рдореЗрдВ, рдорд┐рд▓рд╛рди рдХреА рдЧрдИ рд╡рд╕реНрддреБ рдПрдХ рд╕рд░рдгреА рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИред рд╕реВрдЪрдХрд╛рдВрдХ рд╡рд╛рд▓рд╛ рддрддреНрд╡ [0] рдкреВрд░реА (рдЙрдк) рдкрдВрдХреНрддрд┐ рд╣реИ рдЬреЛ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдкрд╣рд▓рд╛ рддрддреНрд╡ рдкрд╣рд▓рд╛ рд╕рдореВрд╣ рд╣реИ, рджреВрд╕рд░рд╛ рддрддреНрд╡ рджреВрд╕рд░рд╛ рд╣реИ, рдЖрджрд┐ред - рд╕рднреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдореВрд╣реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред
рдХрднреА-рдХрднреА, рдЦреЛрдЬ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╛рда рдореЗрдВ рдирдореВрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ search()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрд╛рдпрдерди рдореЗрдВ, рдпрд╣ рд╡рд┐рдзрд┐ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ рдПрдХ рдорд┐рд▓рд╛рди рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддреА рд╣реИред рдЗрд╕ рдорд┐рд▓рд╛рди рд╡рд╕реНрддреБ рдХреА рдПрдХ start()
рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдореБрдЦреНрдп рд▓рд╛рдЗрди рдореЗрдВ рдЗрд╕ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдШрдЯрдирд╛ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рд▓реМрдЯрд╛рддреА рд╣реИ:
text = 'Say hi at hi@example.com' first_match = pattern.search(text) if first_match: start = first_match.start()
рдЬреЗрдПрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ search()
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд▓реМрдЯрд╛рддреА рд╣реИред рдпрд╛ -1
рдЕрдЧрд░ рдХреЛрдИ рдореИрдЪ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
text = 'Say hi at hi@example.com'; first_match = text.search(pattern); if (first_match > -1) { start = first_match;
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреИрдЯрд░реНрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЖрдорддреМрд░ рдкрд░, рдЬрдм рдЖрдк рдбреЗрдЯрд╛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдкрд╛рда рдореЗрдВ рдХреБрдЫ рдЧреБрдг рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд▓рд╛рдЗрди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рдИрдореЗрд▓ рдкрддреЛрдВ рдХреЛ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдкрд╛рдпрдерди рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ sub()
рд░реЗрдЧреЗрдХреНрд╕ рдкреИрдЯрд░реНрди рд╡рд┐рдзрд┐ рд╣реИ:
html = pattern.sub( r'<a href="mailto:\g<0>">\g<0></a>', 'Say hi at hi@example.com', )
JS рдбреЗрд╡рд▓рдкрд░ replace()
рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
html = 'Say hi at hi@example.com'.replace( pattern, '<a href="mailto:$&">$&</a>', );
рдкрд╛рдпрдерди рдореЗрдВ, рдорд┐рд▓рд╛рди рд╕рдореВрд╣ \g<0>, \g<1>, \g<2>
, рдЖрджрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдЬреЗрдПрд╕ рдореЗрдВ, рдЬреИрд╕реЗ $&, $1, $2
, рдЖрджрд┐ред
рдорд┐рд▓рд╛рди рд╡рд╛рд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред рд╕реНрд░реЛрдд рдкрд╛рда рдХреЗ рд░реИрдкрд┐рдВрдЧ рдХреА рдЬрдЧрд╣ рдпрд╛ рдЧрд┐рдирддреА рдХреЗ рд▓рд┐рдП, рдкрд╛рда рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рдПрдХрддреНрд░ рдХрд░рдиреЗ рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реЗ рдХрд╛рд░реНрдп рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдореИрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ HTML рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВред
рдЖрдЗрдП CAPITAL LETTERS рдореЗрдВ рд╕рднреА рдИ-рдореЗрд▓ рдкрддреЗ рдмрджрд▓реЗрдВред
рдкрд╛рдпрдерди рдореЗрдВ, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдорд┐рд▓рд╛рди рдХреА рдЧрдИ рд╡рд╕реНрддреБ рдорд┐рд▓рддреА рд╣реИред рд╣рдо рдорд┐рд▓рд╛рди рдкрд╛рда рдХреЗ рд╕рд╛рде рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдФрд░ рдЙрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореВрд╣ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
text = pattern.sub( lambda match: match.group(0).upper(), 'Say hi at hi@example.com', )
рдЬреЗрдПрд╕ рдореЗрдВ, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреВрд░реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд┐рд▓рд╛рди, рдкрд╣рд▓реА рдШрдЯрдирд╛, рджреВрд╕рд░рд╛, рдЖрджрд┐ рдорд┐рд▓рддрд╛ рд╣реИред рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рд░реЗрдЦрд╛ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ:
text = 'Say hi at hi@example.com'.replace( pattern, function(match, p1, p2) { return match.toUpperCase(); } );
рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐
рдкрд╛рдпрдерди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдлреНрд░рдВрдЯ-рдПрдВрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдорддреМрд░ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ / рдкрдврд╝рдиреЗ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, try..catch
рдмреНрд▓реЙрдХ рдХреА try..except
рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬреЗрдПрд╕ рдореЗрдВ рдмреНрд▓реЙрдХ рдХрд╛рдлреА рджреБрд░реНрд▓рдн try..catch
ред
рд▓реЗрдХрд┐рди, рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдХреЙрд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдореБрдЦреНрдп рдХреЛрдб рдореЗрдВ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд MyException
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ MyException
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ MyException
, рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкрдХрдбрд╝рд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ try..except..finally
рдмреНрд▓реЙрдХ рдореЗрдВ рд╣реИрдВрдбрд▓ рдХрд░реЗрдВ:
class MyException(Exception): def __init__(self, message): self.message = message def __str__(self): return self.message def proceed(): raise MyException('Error happened!') try: proceed() except MyException as err: print('Sorry! {}'.format(err)) finally: print('Finishing')
рдирд┐рдореНрди JS рдХреЛрдб рд╕рдорд╛рди рд╣реИ - рд╣рдо MyException
рдХреНрд▓рд╛рд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдПрдХ рдлрдВрдХреНрд╢рди рдореЗрдВ MyException
, рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ try..catch..finally
рдмреНрд▓реЙрдХ рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ:
function MyException(message) { this.message = message; this.toString = function() { return this.message; } } function proceed() { throw new MyException('Error happened!'); } try { proceed(); } catch (err) { if (err instanceof MyException) { console.log('Sorry! ' + err); } } finally { console.log('Finishing'); }
рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, MyException
class рдореЗрдВ message
рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ message
рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд╣реИред
рдмреЗрд╢рдХ, рдЕрдкрд╡рд╛рдж рдХреЗрд╡рд▓ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреЗрдВрдХрд╛ / рдЙрдард╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЕрдЧрд░ рдЖрдкрдиреЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд╣рдЪрд╛рди рд▓рд┐рдпрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
- JSON рд╕реЗ / рд╕реЗ рд╕реАрд░рд┐рдпрд▓ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕реАрдзрд╛ рд╣реИ - рдкрд╛рдпрдерди рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдЬреЗрдПрд╕ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред
- рд░реЗрдЧреНрдпреБрд▓рд░ рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд░реНрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЯреВрд▓ рд╣реИред
- рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреЙрд▓, рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рдФрд░ рдПрд░рд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдЖрдк рд╕рдорд╛рди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд░реЗрдЦрд╛-рджрд░-рдкрдВрдХреНрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рддрд╛рд░, рд╕рд░рдгрд┐рдпрд╛рдБ, рд╢рдмреНрджрдХреЛрд╢реЛрдВ, рд╡рд╕реНрддреБрдУрдВ рддрдХ рдкрд╣реБрдВрдЪред
рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдкрд╛рда рдкреИрдЯрд░реНрди, рдЕрдирдкреИрдХрд┐рдВрдЧ рд▓рд┐рд╕реНрдЯ, рд▓реИрдореНрдмреНрдбрд╛ рдлрдВрдХреНрд╢рдиреНрд╕, рдЗрдВрдбреЗрдХреНрд╕, рдЬрдирд░реЗрдЯрд░ рдФрд░ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред