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

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

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ всС аспСкты Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим символом. ΠœΡ‹ рассмотрим встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, особСнности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с XML ΠΈ JSON, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Π·Π½Π°ΠΊ прСпинания Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

БинтаксичСскиС особСнности строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ²

Π’ языкС запросов ΠΈ встроСнном языкС 1Π‘ строка опрСдСляСтся ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Однако, Ссли Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ саму ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΡŒ строки, стандартноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ обрамлСния пСрСстаСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ удвоСния символа для Π΅Π³ΠΎ экранирования. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ тСкста записываСтся ΠΊΠ°ΠΊ Π΄Π²Π΅ подряд ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π‘Π»ΠΎΠ²ΠΎ "ΠŸΡ€ΠΈΠ²Π΅Ρ‚", Π² ΠΊΠΎΠ΄Π΅ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ "Π‘Π»ΠΎΠ²ΠΎ ""ΠŸΡ€ΠΈΠ²Π΅Ρ‚""". ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ послСднСС Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† строки, Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ символы ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, входящиС Π² состав Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ поиска.

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Найти(), Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ ΡƒΠΆΠ΅ Π½Π΅ синтаксичСский Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π±Π°ΠΉΡ‚ ΠΈΠ»ΠΈ символ Π² памяти. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π² качСствС искомого подстроки Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΎΠ΄Π½Ρƒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ строку-Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ для поиска, Π²Π°ΠΌ снова придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ удвоСния.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ для поиска. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Найти(ВСкст, """"), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ воспримСт это ΠΊΠ°ΠΊ ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΈΠ»ΠΈ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного указания экранированного символа. ИмСнно здСсь Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ Ρ‡Π°Ρ‰Π΅ всСго Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки, путая количСство Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… символов.

πŸ’‘

Для быстрого Π²Π²ΠΎΠ΄Π° экранированной ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° 1Π‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш ΠΈΠ»ΠΈ просто Π½Π°Π±Ρ€Π°Ρ‚ΡŒ Π΄Π²Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ подряд Π²Π½ΡƒΡ‚Ρ€ΠΈ строкового Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°.

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Найти() для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ символа

Ѐункция Найти() являСтся основным инструмСнтом для опрСдСлСния ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ подстроки. Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния искомой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, начиная с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа. Если ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° отсутствуСт, функция Π²Π΅Ρ€Π½Π΅Ρ‚ ноль. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ искомый символ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

АргумСнт Π§Ρ‚ΠΎΠ˜Ρ‰Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ строкой, содСрТащСй ΠΎΠ΄Π½Ρƒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ. Как ΠΌΡ‹ выяснили Ρ€Π°Π½Π΅Π΅, для прСдставлСния ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ 1Π‘ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для поиска ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠœΠΎΠΉΠ’Π΅ΠΊΡΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = Найти(ΠœΠΎΠΉΠ’Π΅ΠΊΡΡ‚, """");

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

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

πŸ’‘

Ѐункция Найти(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, """") Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π’Ρ€ΠΎΠΉΠΊΠ° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ строку ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа-ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСкстов с мноТСствСнными вхоТдСниями

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Π° Π½Π΅ просто Π½Π°ΠΉΡ‚ΠΈ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ, Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ всС вхоТдСния этого символа Π² тСкстС. Π­Ρ‚ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ парсингС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΈΠ· CSV-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ очисткС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°. Алгоритм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ цикличСским, с постоянным смСщСниСм Ρ‚ΠΎΡ‡ΠΊΠΈ старта поиска послС нахоТдСния ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ символа.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-счСтчик Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ нахоТдСния ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ эту ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ поиск Π² ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ части строки. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ зацикливания Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ символС.

  • πŸ” Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π’Π΅ΠΊΡƒΡ‰Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 1.
  • πŸ” Π’ Ρ†ΠΈΠΊΠ»Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Найти(), указывая Π½Π°Ρ‡Π°Π»ΠΎΠΌ поиска Π’Π΅ΠΊΡƒΡ‰Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡ.
  • πŸ“ Если Π½Π°ΠΉΠ΄Π΅Π½ΠΎ (позиция > 0), Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½ΠΎΠ΅ дСйствиС ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π’Π΅ΠΊΡƒΡ‰Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ + 1.
  • πŸ›‘ Если Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ (позиция = 0), Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ Ρ†ΠΈΠΊΠ».

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов тСкста Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ создания Π½ΠΎΠ²Ρ‹Ρ… строк Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ (конкатСнация). Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΄Π΅Π³Ρ€Π°Π΄Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ·-Π·Π° сборки мусора. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±ΡƒΡ„Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ массивы.

Π­ΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² запросах ΠΈ динамичСском построСнии

ΠžΡΠΎΠ±ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСдставляСт поиск ΠΈ использованиС ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ тСкстов запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Когда Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ запрос динамичСски, вкладывая ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² тСкст запроса, ΠΏΡ€Π°Π²ΠΈΠ»Π° экранирования ΡƒΠ΄Π²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ для языка 1Π‘, ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ пСрСдастся Π² Π΄Π²ΠΈΠΆΠΎΠΊ запросов.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ запросы (Ρ‡Ρ‚ΠΎ являСтся Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ), ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° поиска ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ автоматичСски Π΄Π²ΠΈΠΆΠΊΠΎΠΌ. Π’Ρ‹ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ строку с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΈ 1Π‘ сама позаботится ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ экранировании ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ запроса Π‘Π£Π‘Π”.

Однако, Ссли Π²Ρ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ строк для формирования запроса (Ρ‡Π΅Π³ΠΎ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ), Π²Π°ΠΌ придСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ. Π’ тСкстС запроса строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°ΠΌΠ»ΡΡŽΡ‚ΡΡ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΡŒ значСния Π² запросС, Π΅Ρ‘ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π²ΠΎΠΈΡ‚ΡŒ. А Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ это ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅ 1Π‘, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡Π΅Ρ‚Π²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ использования Π’Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ количСство ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² памяти/запросС
ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ 2 (Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΉ) ВСкст = "А""Π‘" А"Π‘
АргумСнт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Найти 3 (Π² суммС) Найти(ВСкст, """") Поиск символа "
Вставка Π² тСкст запроса 4 (Π² суммС) "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = """" " Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = ""
JSON Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 (экран слэшСм) "\"" (Π² JSON строкС) Π‘ΠΈΠΌΠ²ΠΎΠ» "

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, количСство ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ растСт ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ углублСния Π² ΡƒΡ€ΠΎΠ²Π½ΠΈ влоТСнности. Ошибка Π² подсчСтС хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ запрос Π½Π΅ выполнится, Π²Ρ‹Π΄Π°Π² ΠΎΡˆΠΈΠ±ΠΊΡƒ синтаксиса Π½Π° сторонС сСрвСра 1Π‘ ΠΈΠ»ΠΈ Π‘Π£Π‘Π”.

πŸ“Š Как Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ Π² запросах?
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса
Π­ΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ
Π—Π°ΠΌΠ΅Π½ΡΡŽ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ символ
ИзбСгаю ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π² Π΄Π°Π½Π½Ρ‹Ρ…

Π Π°Π±ΠΎΡ‚Π° с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ JSON ΠΈ XML

БоврСмСнная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² 1Π‘ тСсно связана с ΠΎΠ±ΠΌΠ΅Π½ΠΎΠΌ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-сСрвисы, Π³Π΄Π΅ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ JSON ΠΈ XML. Π’ этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… ΠΏΡ€Π°Π²ΠΈΠ»Π° экранирования ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» 1Π‘. Π’ JSON ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° экранируСтся ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слэшСм \. Π­Ρ‚ΠΎ создаСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ слой слоТности ΠΏΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ JSON-строки Π² 1Π‘ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнных срСдств (Π§Ρ‚Π΅Π½ΠΈΠ΅JSON) ΠΈΠ»ΠΈ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, экранированиС обрабатываСтся автоматичСски. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ 1Π‘ "Ρ‡ΠΈΡΡ‚ΡƒΡŽ" строку с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΎΠΉ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΌ парсингС ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ JSON-строки ΠΏΡƒΡ‚Π΅ΠΌ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ.

Если Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ JSON Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (Ρ‡Ρ‚ΠΎ Π½Π΅ рСкомСндуСтся, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ), Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сами Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ значСния. Π’ ΠΊΠΎΠ΄Π΅ 1Π‘ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш ΠΈ Π΄Π²Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (для прСдставлСния ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² строкС 1Π‘). Π’ΠΎ Π΅ΡΡ‚ΡŒ "\\\"" Π² ΠΊΠΎΠ΄Π΅ 1Π‘ прСвратится Π² \" Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ JSON-строкС.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ стоит Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ JSON Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ?

Ручная сборка JSON ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π° ошибкам экранирования, особСнно Π² слоТных Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… структурах. ВстроСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON/Π—Π°ΠΏΠΈΡΡŒJSON Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ всСх спСцсимволов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, слэши ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ символы.

Для XML ситуация Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π°, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ сущности. Двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π° ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ". ΠŸΡ€ΠΈ поискС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² XML-тСкстС, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ ΠΊΠ°ΠΊ строка, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ сам символ, Ρ‚Π°ΠΊ ΠΈ Π΅Π³ΠΎ сущностноС прСдставлСниС, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΡˆΠ»Π° Π»ΠΈ строка ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ парсСром.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

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

Когда Π²Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΎΠΊΠ½ΠΎ сообщСний ΠΈΠ»ΠΈ Π»ΠΎΠ³, 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² зависимости ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ строки Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ, Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки ΠΎΠ½ΠΈ Π²ΠΈΠ΄Π½Ρ‹. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° строка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π²Π°ΠΈΠ²Π°Π΅Ρ‚ количСство символов ΠΈ сбиваСт с Ρ‚ΠΎΠ»ΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

  • 🐞 Ошибка Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ: Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π²ΠΈΠ΄ΠΈΡ‚ Π΄Π²Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π΄Π²Π΅ Π² Π΄Π°Π½Π½Ρ‹Ρ…, хотя это ΠΎΠ΄Π½Π° экранированная.
  • 🐞 Ошибка сравнСния: Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строки, считанной ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, с ТСстко Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠ΄Π΅ строкой, Π³Π΄Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ расставлСны ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ символы.
  • 🐞 Ошибка ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ: ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π›Π΅Π²() ΠΈΠ»ΠΈ ΠŸΡ€Π°Π²() с Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ расчСтом Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠ·-Π·Π° Π½Π΅ΡƒΡ‡Ρ‚Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… ситуаций рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€ΠΎΠΊΠ°() ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки (Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°()). Если Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ 10 символов, Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ 11, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, лишний символ β€” это нСвидимая ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ учтСнная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· КодБимвола(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ (ΠΊΠΎΠ΄ 34 Π² ASCII/Unicode), Π° Π½Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ символ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π°.

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

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

Как Π½Π°ΠΉΡ‚ΠΈ послСднюю ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π² строкС?

Ѐункция Найти() ΠΈΡ‰Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ послСднюю ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ строку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ() (косвСнно) ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ», описанный Π²Ρ‹ΡˆΠ΅, сохраняя ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ послСднСго Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ символа. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ поиск с ΠΊΠΎΠ½Ρ†Π°, Ссли такая функция доступна Π² вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π»ΠΈΠ±ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() ΠΈ поиск Π² подстрокС.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСгулярныС выраТСния для поиска ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ?

Π”Π°, Π² 1Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ рСгулярныС выраТСния (класс РСгулярноСВыраТСниС). Для поиска ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² рСгулярном Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π΅Ρ‘ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слэшСм. Π¨Π°Π±Π»ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ \". Однако для поиска простого символа рСгулярныС выраТСния ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ встроСнная функция Найти().

ΠŸΠΎΡ‡Π΅ΠΌΡƒ поиск ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² тСкстС, скопированном ΠΈΠ· Word?

ВСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Word часто Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ прямыС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ("") Π½Π° "Π΅Π»ΠΎΡ‡ΠΊΠΈ" («») ΠΈΠ»ΠΈ "Π»Π°ΠΏΠΊΠΈ" Ρ€Π°Π·Π½ΠΎΠ³ΠΎ начСртания (ΚΊ, β€³). Π­Ρ‚ΠΈ символы ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ΄Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Unicode ΠΈ Π½Π΅ Ρ€Π°Π²Π½Ρ‹ стандартной ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ΅ (ΠΊΠΎΠ΄ 34). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ КодБимвола() для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° символа Π² строкС.

Как Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π½Π° ΠΏΡƒΡΡ‚ΡƒΡŽ строку?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, """", ""). Π—Π΄Π΅ΡΡŒ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ пСрСдаСтся строка ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (записанная ΠΊΠ°ΠΊ Π΄Π²Π΅), Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ β€” пустая строка. Π­Ρ‚ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ всС вхоТдСния ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈΠ· тСкста.

ВлияСт Π»ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° поиск ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ?

НСт, ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° являСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ символом ASCII/Unicode ΠΈ присутствуСт Π²ΠΎ всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… 1Π‘ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Ρ‹ ΠΈΠ»ΠΈ Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ массивами Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, игнорируя строковыС прСобразования.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности поиска

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