Π’ процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ программисты часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°. Одной ΠΈΠ· самых распространСнных ситуаций являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ввСдСнная ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ строка содСрТит ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ символы. Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ…, Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Π°ΠΌΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², ИНН ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, Π³Π΄Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π±ΡƒΠΊΠ² ΠΈΠ»ΠΈ спСцсимволов нСдопустимо.

НСкоррСктная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π°ΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам ΠΏΡ€ΠΈ записи Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, сбоям Π² ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с внСшними систСмами ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ². Бтандартная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π½Π΅ прСдоставляСт ΠΎΠ΄Π½ΠΎΠΉ СдинствСнной "волшСбной" Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для этой Π·Π°Π΄Π°Ρ‡ΠΈ Π² явном Π²ΠΈΠ΄Π΅, поэтому Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ приходится Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… доступных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° зависит ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ спСцифики ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ основныС способы Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ строки Π½Π° содСрТаниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ чисСл. ΠœΡ‹ рассмотрим ΠΊΠ°ΠΊ классичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° символов, Ρ‚Π°ΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ соврСмСнныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с использованиСм рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. ПониманиС нюансов ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ эффСктивный ΠΊΠΎΠ΄.

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ БтрНайти для поиска нСдопустимых символов

Один ΠΈΠ· самых простых ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятных способов ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ строку β€” ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π½Π°ΠΉΡ‚ΠΈ Π² Π½Π΅ΠΉ любой символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ являСтся Ρ†ΠΈΡ„Ρ€ΠΎΠΉ. Π›ΠΎΠ³ΠΈΠΊΠ° здСсь строится Π½Π° инвСрсии: Ссли ΠΌΡ‹ Π½Π΅ нашли Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ†ΠΈΡ„Ρ€, Π·Π½Π°Ρ‡ΠΈΡ‚, строка состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π½ΠΈΡ…. Для этого ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ БтрНайти, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния подстроки.

Π‘ΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… "Π½Π΅Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ…" символов ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€Ρ‹. Однако Π±ΠΎΠ»Π΅Π΅ эффСктивным Π±ΡƒΠ΄Π΅Ρ‚ поиск ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π½Π΅Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ символа Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ»ΠΈ использованиС Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… констант. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ всС Π±ΡƒΠΊΠ²Ρ‹ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ, ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π°Π»ΠΈΡ‡ΠΈΠ΅. Если функция БтрНайти Π²Π΅Ρ€Π½Π΅Ρ‚ 0 для всСх нСдопустимых символов, Π·Π½Π°Ρ‡ΠΈΡ‚, Π²Π²ΠΎΠ΄ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½.

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ высокой ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… строках, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ создания Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ слоТных вычислСний. Однако ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ, Ссли список Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π½Ρ‹Ρ… символов Π²Π΅Π»ΠΈΠΊ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ особСнности, Ссли Π² систСмС ΠΌΠΎΠ³ΡƒΡ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках.

πŸ’‘

Для ускорСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ константу со всСми нСдопустимыми символами ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа исходной строки Π² этот Π½Π°Π±ΠΎΡ€.

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°Ρ…. Часто ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ случайно вводят ΠΏΡ€ΠΎΠ±Π΅Π» Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ†Π΅ строки. Ѐункция БтрНайти Π½Π°ΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π΅Π» ΠΊΠ°ΠΊ нСдопустимый символ, Ссли Π²Ρ‹ явно Π½Π΅ прСдусмотрСли Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ очистки Π΄Π°Π½Π½Ρ‹Ρ…. ВсСгда Ρ€Π΅ΡˆΠ°ΠΉΡ‚Π΅, допустимы Π»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² вашСм ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² 1Π‘ 8.3 ΠΈ Π²Ρ‹ΡˆΠ΅

Начиная с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ стал доступСн ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом β€” рСгулярныС выраТСния. Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ способ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ строк. РСгулярныС выраТСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ слоТный шаблон, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ строка, Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ ΠΈ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ строка состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· чисСл, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ шаблон, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Ρ‡Π°Π»Ρƒ строки, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ†ΠΈΡ„Ρ€, ΠΈ ΠΊΠΎΠ½Π΅Ρ† строки. Π’ синтаксисС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ это записываСтся ΠΊΠ°ΠΊ ^\d+$. Π‘ΠΈΠΌΠ²ΠΎΠ» ^ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ, \d ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π»ΡŽΠ±ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ, Π·Π½Π°ΠΊ + ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·, Π° $ β€” ΠΊΠΎΠ½Π΅Ρ† строки. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²ΠΎ всСй строкС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ лишнСго.

ИспользованиС этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ внСшнСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΠ»ΠΈ использования встроСнных возмоТностСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ссли ΠΎΠ½ΠΈ доступны Π² вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Код становится ΠΎΡ‡Π΅Π½ΡŒ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π·Π½Π°ΠΊΠΎΠΌ с синтаксисом рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибок, связанных с чСловСчСским Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈ написании условий.

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
Цикл по символам
РСгулярныС выраТСния
ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° прСобразования
БтрНайти

Однако стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ компиляция рСгулярного выраТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя. Если ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° выполняСтся Π² Ρ†ΠΈΠΊΠ»Π΅ с тысячами ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΠ°ΡΡ‚ΡŒ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях рСкомСндуСтся ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π° Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ прСобразования Ρ‚ΠΈΠΏΠ° (ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅)

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ распространСнный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, часто Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ "ΡƒΡ‚ΠΈΠ½ΠΎΠΉ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ" Π² контСкстС 1Π‘, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ привСсти строку ΠΊ числовому Ρ‚ΠΈΠΏΡƒ. Π›ΠΎΠ³ΠΈΠΊΠ° проста: Ссли систСма смоТСт ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² число Π±Π΅Π· ошибок, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ½Π° содСрТала Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΡ„Ρ€Ρ‹ (ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π½Π°ΠΊΠΈ, допустимыС для числа). Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π’Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Число(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°. Если ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π±Π»ΠΎΠΊΡƒ Π’ΠΎΠ³Π΄Π°, Π³Π΄Π΅ Π²Ρ‹ фиксируСтС, Ρ‡Ρ‚ΠΎ строка Π²Π°Π»ΠΈΠ΄Π½Π°. Если ΠΆΠ΅ Π² строкС Π΅ΡΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρ‹, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сгСнСрируСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ Π² Π±Π»ΠΎΠΊ Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΈ Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π²ΠΎΠ΄ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ Π½Π°Π΄Π΅ΠΆΠ΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ встроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ парсинга ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π“Π»Π°Π²Π½Ρ‹ΠΉ нСдостаток Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° β€” ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² 1Π‘ достаточно тяТСлый. Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ тысячи строк Π² Ρ†ΠΈΠΊΠ»Π΅, врСмя выполнСния ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Ρ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с посимвольной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π½Π΅ являСтся критичСским Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ»ΠΈ Π³Π΄Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ мСдлСнная?

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ описания ошибки, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС рСсурсов процСссора, Ρ‡Π΅ΠΌ простой условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.

Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ функция Число() ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ строки с дСсятичным Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ (запятой ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ) ΠΈ Π·Π½Π°ΠΊΠΎΠΌ минуса. Если ваша Π·Π°Π΄Π°Ρ‡Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ строгого наличия Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΡ„Ρ€ 0-9 Π±Π΅Π· Π·Π½Π°ΠΊΠΎΠ², этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

ΠŸΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΈ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄ΠΎΠ² символов

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ алгоритмичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ строкС Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ. Π’ 1Π‘ для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘ΠΈΠΌΠ²ΠΎΠ» для получСния символа ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π›ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ символа ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΊΠΎΠ΄ΠΎΠ² Ρ†ΠΈΡ„Ρ€.

ΠšΠΎΠ΄Ρ‹ Ρ†ΠΈΡ„Ρ€ ΠΎΡ‚ '0' Π΄ΠΎ '9' Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ASCII (ΠΈ совмСстимых ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… 1Π‘) ΠΈΠ΄ΡƒΡ‚ подряд. Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ΅ условиС: Ссли ΠΊΠΎΠ΄ символа большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π΅Π½ ΠΊΠΎΠ΄Ρƒ '0' ΠΈ мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π΅Π½ ΠΊΠΎΠ΄Ρƒ '9', Ρ‚ΠΎ символ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ†ΠΈΠΊΠ» прСрываСтся, ΠΈ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π›ΠΎΠΆΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π°Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΈ отсутствиС Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, сколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для высоконагруТСнных участков ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

β˜‘οΈ Алгоритм посимвольной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ с Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ символов. Π’ 1Π‘ нумСрация Π² строках начинаСтся с 1, Π° Π½Π΅ с 0, ΠΊΠ°ΠΊ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования. Ошибка Π² индСксации ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ бСсконСчному Ρ†ΠΈΠΊΠ»Ρƒ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ часто упираСтся Π² баланс ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π° ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π΅Π³ΠΎ выполнСния. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ взвСшСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· рассмотрСнных способов. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ сСрвСрного окруТСния, Π½ΠΎ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Π² Ρ…ΠΎΠ΄Π΅ тСстирования Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ ΠΈΠ· 100 000 строк Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ) Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ
ΠŸΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ Высокая БрСдняя Низкая
БтрНайти БрСдняя Низкая БрСдняя
РСгулярныС выраТСния БрСдняя/Низкая Низкая Высокая
ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° прСобразования Низкая Низкая БрСдняя

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π² чистом быстродСйствии. Однако, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ слоТный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ с маской, рСгулярныС выраТСния окаТутся Π²Π½Π΅ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ ΠΏΠΎ удобству ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ΄Π°, нСсмотря Π½Π° нСбольшоС сниТСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

πŸ’‘

Для Ρ€Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° (рСгулярки ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°), Π° для цикличСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² β€” ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ (ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€).

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ 1Π‘ (Π² толстом ΠΈΠ»ΠΈ Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅) ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ сСрвСрной. ВяТСлыС рСгулярныС выраТСния ΠΌΠΎΠ³ΡƒΡ‚ "ΠΏΠΎΠ΄Π²Π΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ" интСрфСйс, Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² основном ΠΏΠΎΡ‚ΠΎΠΊΠ΅. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ»ΠΈ Π½Π° сСрвСр.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° особых случаСв ΠΈ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… символов

ΠŸΡ€ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ строк нСльзя Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ Π½ΡŽΠ°Π½ΡΠ°Ρ…, связанных с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ языками, ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ считаСтся Ρ†ΠΈΡ„Ρ€ΠΎΠΉ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ½ΠΎΠ΅ прСдставлСниС Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π₯отя стандартныС арабскиС Ρ†ΠΈΡ„Ρ€Ρ‹ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ систСмы счислСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ тСорСтичСски ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π±Π°Π·Ρƒ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ "ΠΏΠΎΡ…ΠΎΠΆΠΈΡ…" символов. НСкоторыС Π±ΡƒΠΊΠ²Ρ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΡˆΡ€ΠΈΡ„Ρ‚Π°Ρ… Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΌΡ‹ ΠΎΡ‚ Ρ†ΠΈΡ„Ρ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΡƒΠΊΠ²Π° 'O' ΠΈ Ρ†ΠΈΡ„Ρ€Π° '0', Π±ΡƒΠΊΠ²Π° 'l' ΠΈ Ρ†ΠΈΡ„Ρ€Π° '1'). ΠŸΡ€ΠΎΡΡ‚Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΊΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ‹, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ скопировал Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· внСшнСго источника с нСстандартным Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Excel ΠΈΠ»ΠΈ Π²Π΅Π±-сайтов Π² строкС ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ символы (Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, символы табуляции, Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ символы). Они Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹ Π³Π»Π°Π·Ρƒ, Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ ΠΊ ошибкС ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π² число. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ для очистки строки ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Ρ… символов ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ.

Если ваша систСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ срСдС, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅Π³ΠΈΠΎΠ½ΠΎΠ². Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… российских систСм достаточно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° '0'...'9', Π½ΠΎ для ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ опрСдСлСния Ρ‚ΠΈΠΏΠ° символа, Ссли ΠΎΠ½ΠΈ доступны Π² вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘ΠΎΠΊΡ€Π›ΠŸ() ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ автоматичСски ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΏΠΎ краям строки. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π»ΠΎΠΆΠ½Ρ‹Π΅ срабатывания Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΈΠ·-Π·Π° случайных Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ систСмы ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с пустыми строками. ΠŸΡƒΡΡ‚Π°Ρ строка тСхничСски Π½Π΅ содСрТит Π½Π΅Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… символов, Π½ΠΎ ΠΈ Π½Π΅ являСтся числом. Π Π΅ΡˆΠΈΡ‚Π΅ Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΊΠ°ΠΊ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° пустой Π²Π²ΠΎΠ΄: ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ошибкой ΠΈΠ»ΠΈ допустимым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ 0 ΠΈΠ»ΠΈ NULL).

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡

Для закрСплСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° рассмотрим ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° встроСнном языкС 1Π‘. Π­Ρ‚ΠΈ сниппСты ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Π°ΡˆΠΈΡ… модулях, Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π² ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π½ΡƒΠΆΠ΄Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

НиТС прСдставлСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€. Π­Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ для сСрвСрных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²:

Ѐункция Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ»ΡŒΠΊΠΎΠ§ΠΈΡΠ»Π°(Π—Π½Π°Ρ‡ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΠ°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°)

Если ΠŸΡƒΡΡ‚Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°(ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΠ°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°) Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π›ΠΎΠΆΡŒ;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Для Π‘Ρ‡ = 1 По Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΠ°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°) Π¦ΠΈΠΊΠ»

Π‘ΠΈΠΌΠ²ΠΎΠ» = Π‘Ρ€Π΅Π΄(ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΠ°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘Ρ‡, 1);

Если Π‘ΠΈΠΌΠ²ΠΎΠ» < "0" Или Π‘ΠΈΠΌΠ²ΠΎΠ» > "9" Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π›ΠΎΠΆΡŒ;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π˜ΡΡ‚ΠΈΠ½Π°;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

А Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

Ѐункция Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ»ΡŒΠΊΠΎΠ§ΠΈΡΠ»Π°_МСдлСнно(Π—Π½Π°Ρ‡ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΠ°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°)

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

Число(ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΠ°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°);

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π˜ΡΡ‚ΠΈΠ½Π°;

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π›ΠΎΠΆΡŒ;

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго вписываСтся Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ вашСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, указывая Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π°.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ доступныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ². ВсСгда провСряйтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ синтаксиса.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ строку Π½Π° числа с дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ?

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ посимвольного ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° услоТнится, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡ‚ΡƒΡŽ. Π’ этом случаС Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Число() Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° автоматичСски ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ настройки Π»ΠΎΠΊΠ°Π»ΠΈ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ИНН?

Π”Π°, ИНН состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Ρ†ΠΈΡ„Ρ€, поэтому ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° содСрТаниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ чисСл являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ. Однако послС этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки (10 ΠΈΠ»ΠΈ 12 символов) ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму для ΠΏΠΎΠ»Π½ΠΎΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ коррСктности.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ функция БтрНайти Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ†ΠΈΡ„Ρ€Ρƒ, которая явно Π΅ΡΡ‚ΡŒ Π² строкС?

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ·-Π·Π° различия Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… ΠΈΠ»ΠΈ использования ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… символов ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ строковоС прСдставлСниС Ρ†ΠΈΡ„Ρ€Ρ‹ ("5"), Π° Π½Π΅ само число (5). Ѐункция БтрНайти Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со строковыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ?

Если Π²Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ тысячи строк, вынСситС Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π° сСрвСрС. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄. Если Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ запроса ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ условия Ρ‚ΠΈΠΏΠ° ΠŸΠžΠ”ΠžΠ‘ΠΠž, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ строки.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π² строкС Π΅ΡΡ‚ΡŒ скрытыС символы?

ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡ΠΈΡ‰Π°ΠΉΡ‚Π΅ строку. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π‘ΠΎΠΊΡ€Π›ΠŸ для удалСния ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ для удалСния извСстных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π‘ΠΈΠΌΠ²ΠΎΠ»(160)). Волько послС санации Π΄Π°Π½Π½Ρ‹Ρ… приступайтС ΠΊ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ.