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

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

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

Базовая функция Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ Π΅Ρ‘ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ инструмСнтом для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ являСтся встроСнная функция Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ. Она ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строку ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, возвращая массив строк. Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ позволяСт Π³ΠΈΠ±ΠΊΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² зависимости ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ массив, Π° Π½Π΅ список Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для доступа ΠΊ элСмСнтам Π²Π°ΠΌ потрСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ, начиная с нуля. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ привСсти Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ Ρ‚ΠΈΠΏΡƒ БписокЗначСний Π±Π΅Π· Ρ†ΠΈΠΊΠ»Π°, систСма выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ нСсоотвСтствия Ρ‚ΠΈΠΏΠΎΠ².

Рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ раздСлСния списка Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹, Π³Π΄Π΅ элСмСнты Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой:

Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = "Молоко;Π₯Π»Π΅Π±;Π―ΠΉΡ†Π°;Масло";

ΠœΠ°ΡΡΠΈΠ²Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² = Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, ";");

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из ΠœΠ°ΡΡΠΈΠ²Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ удалСния пустых подстрок, функция Π²Π΅Ρ€Π½Π΅Ρ‚ пустыС значСния для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ. НапримСр, строка "А;;Π‘" прСвратится Π² массив ΠΈΠ· Ρ‚Ρ€Π΅Ρ… элСмСнтов, Π³Π΄Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ пустым.
πŸ’‘

ВсСгда провСряйтС содСрТимоС строки ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ наличия Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄ символа.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пустыми элСмСнтами ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ идСальноС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π›ΡŽΠ΄ΠΈ часто ставят лишниС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ»ΠΈ послС Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π»ΠΈΠ±ΠΎ случайно вводят ΠΈΡ… Π΄Π²Π°ΠΆΠ΄Ρ‹. Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… ситуаций Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ.

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

Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ управляСт ΠΎΠ±Ρ€Π΅Π·ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². ΠŸΡ€ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π˜ΡΡ‚ΠΈΠ½Π° функция автоматичСски Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π°Π½Π°Π»ΠΎΠ³ Π‘ΠΎΠΊΡ€Π›ΠŸ (ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ слСва ΠΈ справа) для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта. Π­Ρ‚ΠΎ избавляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» для очистки Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ всСх нюансов выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ГрязнаяБтрока = " Π’ΠΎΠ²Π°Ρ€1 ,  Π’ΠΎΠ²Π°Ρ€2 , , Π’ΠΎΠ²Π°Ρ€3 ";

// ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, Π£Π΄Π°Π»ΡΡ‚ΡŒΠŸΡƒΡΡ‚Ρ‹Π΅, ΠžΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹

Π§ΠΈΡΡ‚Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² = Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ(ГрязнаяБтрока, ",", Π˜ΡΡ‚ΠΈΠ½Π°, Π˜ΡΡ‚ΠΈΠ½Π°);

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° качСства строки ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Π±ΠΎΡ€ΠΎΠΌ

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

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

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π·Π±ΠΎΡ€Π° тСкста

Π₯отя Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ являСтся стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… спСцифичСских сцСнариях ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹. НапримСр, Ссли Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ прСдставляСт собой ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов ΠΈΠ»ΠΈ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, стандартная функция ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ.

Для поиска ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ БтрНайти Π² Ρ†ΠΈΠΊΠ»Π΅. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΎΠΊ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½ΠΎ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ символы, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ экранированныС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌΠ‘Ρ‚Ρ€ΠΎΠΊ. Если ваша Π·Π°Π΄Π°Ρ‡Π° β€” Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ тСкст Π½Π° строки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, содСрТимоС поля Ρ‚ΠΈΠΏΠ° Π₯ранилищСЗначСния ΠΈΠ»ΠΈ многострочного Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ поля), Ρ‚ΠΎ использованиС систСмной константы Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ (пСрСнос строки) Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ.

  • πŸ” Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ БтрНайти, ΠΊΠΎΠ³Π΄Π° Π»ΠΎΠ³ΠΈΠΊΠ° раздСлСния зависит ΠΎΡ‚ контСкста surrounding символов.
  • πŸ“ ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ для Ρ€Π°Π·Π±ΠΎΡ€Π° многострочных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΎΠ².
  • βš™οΈ РассмотритС использованиС РСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для слоТных ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² (Π² старых вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹).
ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ?

Частая ошибка β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π½Π° пустоту ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΠΈΠΏΠ½ΡƒΡ‚ΡŒ слова, Ссли ΠΏΡ€ΠΎΠ±Π΅Π» являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ названия, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "АО Ромашка".

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ массива Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ массив строк часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² рСгистр свСдСний ΠΈΠ»ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. ΠŸΡ€ΡΠΌΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с массивом Π² Ρ‚Π°ΠΊΠΈΡ… случаях Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Π°, поэтому Π»ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ конвСртация Π² Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

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

ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ· массива выглядит Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ ΠΈ выполняСтся быстро Π΄Π°ΠΆΠ΅ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…:

Ѐункция ΠœΠ°ΡΡΠΈΠ²Π’Π’Π°Π±Π»ΠΈΡ†Ρƒ(ΠœΠ°ΡΡΠΈΠ²Π‘Ρ‚Ρ€ΠΎΠΊ)

Π’Π°Π± = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

Π’Π°Π±.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅", ВипОписанияВипов("Π‘Ρ‚Ρ€ΠΎΠΊΠ°(150)"));

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π­Π»Π΅ΠΌ Из ΠœΠ°ΡΡΠΈΠ²Π‘Ρ‚Ρ€ΠΎΠΊ Π¦ΠΈΠΊΠ»

НоваяБтрока = Π’Π°Π±.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

НоваяБтрока.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π­Π»Π΅ΠΌ;

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π’Π°Π±;

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

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вывСсти содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² консоль ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ»ΠΈ сразу ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² интСрфСйсС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сортировки ΠΈ поиска, нСдоступныС для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ массива.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ создании ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ всСгда ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ строки. УсСчСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ записи Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ валидация Π΄Π°Π½Π½Ρ‹Ρ…

Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ использовании всСх ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² очистки, внСшниС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·Ρ‹. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈΠ»ΠΈ нСстандартныС Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ критичСски Π²Π°ΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строкой.

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

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° гигантских тСкстовых ΠΏΠΎΠ»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° всСго справочника Π² ΠΎΠ΄Π½Ρƒ строку) ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ большого объСма ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΏΡ€ΠΈ создании массива.

Π’ΠΈΠΏ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π‘ΠΈΠΌΠΏΡ‚ΠΎΠΌ РСшСниС
ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Массив ΠΈΠ· 1 элСмСнта ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° БтрНайти Π΄ΠΎ разбиСния
НСвСрная ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠšΡ€Π°ΠΊΠΎΠ·ΡΠ±Ρ€Ρ‹ Π² тСкстС ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· ВСкстовыйДокумСнт
Null-символы ΠžΠ±Ρ€Π΅Π·ΠΊΠ° строки Π—Π°ΠΌΠ΅Π½Π° Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ ΠΈ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš
πŸ’‘

Валидация Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 5% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 90% ошибок Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами

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

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

Для ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡ рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сторонС Π‘Π£Π‘Π”, Ссли конфигурация позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запросы Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Однако для стандартных Π·Π°Π΄Π°Ρ‡ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° встроСнном языкС 1Π‘ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ дСмонстрируСт ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ.

  • πŸš€ Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для Ρ€Π°Π·Π±ΠΎΡ€Π°.
  • πŸ—‘οΈ ΠžΡ‡ΠΈΡ‰Π°ΠΉΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ массивы, присваивая ΠΈΠΌ НСопрСдСлСно, Ссли ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ памяти.
  • ⏱️ ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»Π΅Π΅ 10 000 строк.
МоТно Π»ΠΈ Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚ΡŒ строку Π±Π΅Π· использования массива?

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

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ тСкста?

Π’ этом случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ экранированиС ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТный парсинг. Бтандартная Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ экранированиС, поэтому придСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π° строки посимвольно.

Как Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ строку ΠΏΠΎ нСскольким Ρ€Π°Π·Π½Ρ‹ΠΌ раздСлитСлям?

Ѐункция Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ. Для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, запятая Π˜Π›Π˜ Ρ‚ΠΎΡ‡ΠΊΠ° с запятой) Π½ΡƒΠΆΠ½ΠΎ сначала Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ символ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅.

ВлияСт Π»ΠΈ вСрсия ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ?

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π²ΠΎ всСх соврСмСнных вСрсиях (8.2, 8.3). Однако Π² Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками.