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

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ сущСствуСт ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ арсСнал встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для манипуляции со строками. ΠžΡ‚ простого удалСния ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π΄ΠΎ слоТных Π·Π°ΠΌΠ΅Π½ с использованиСм рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ситуации, позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ошибок ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² XML ΠΈΠ»ΠΈ JSON.

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

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ удалСния ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ²

Бамая распространСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ†Π΅ строки. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ Π² языкС запросов ΠΈ встроСнном языкС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ прСдусмотрСна функция Π‘ΠΎΠΊΡ€Π›ΠŸ. Она удаляСт всС ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Π΅ символы слСва ΠΈ справа ΠΎΡ‚ основного тСкста, оставляя Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ.

Однако стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π‘ΠΎΠΊΡ€Π›ΠŸ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ (ΠΊΠΎΠ΄ 32). Если Π² строкС ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ символы табуляции ΠΈΠ»ΠΈ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ (часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Word), эта функция ΠΈΡ… Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях трСбуСтся Π±ΠΎΠ»Π΅Π΅ глубокая очистка.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ѐункция Π‘ΠΎΠΊΡ€Π›ΠŸ Π½Π΅ удаляСт символы ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки (Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ). Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ строку ΠΎΡ‚ пСрСносов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ символа.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ очистки, Π³Π΄Π΅ ΠΌΡ‹ сначала ΡƒΠ±ΠΈΡ€Π°Π΅ΠΌ края, Π° Π·Π°Ρ‚Π΅ΠΌ спСцифичСскиС символы:

Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = " Π’ΠΎΠ²Π°Ρ€ β„–123 " + Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ;

ΠžΡ‡ΠΈΡ‰Π΅Π½Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = Π‘ΠΎΠΊΡ€Π›ΠŸ(Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ, ""));

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: "Π’ΠΎΠ²Π°Ρ€ β„–123"

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ БтрНачинаСтсяБ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия прСфикса ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π΅Π·ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, Ссли ΠΏΡ€ΠΎΠ±Π΅Π» являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² отступах ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ).

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… символов Ρ‡Π΅Ρ€Π΅Π· Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ

Ѐункция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для удалСния любого извСстного символа ΠΈΠ»ΠΈ подстроки. Π›ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ проста: Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ строку, искомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Π½Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ символ, Π² качСствС значСния Π·Π°ΠΌΠ΅Π½Ρ‹ пСрСдаСтся пустая строка "".

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

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ "Π°" нСзависимо ΠΎΡ‚ рСгистра, придСтся Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π²Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ строку ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ рСгистру beforehand. Для массового удалСния Π½Π°Π±ΠΎΡ€Π° Ρ€Π°Π·Π½Ρ‹Ρ… символов Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» ΠΈΠ»ΠΈ рСгулярныС выраТСния.

  • πŸ—‘οΈ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π°Π»ΡŽΡ‚Ρ‹: Π·Π°ΠΌΠ΅Π½Π° символов "β‚½", "$", "€" Π½Π° пустоту ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ Π² число.
  • πŸ”’ ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ скобок, Ρ‚ΠΈΡ€Π΅ ΠΈ плюсов для получСния чисто Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°.
  • πŸ“ Банитизация ΠΈΠΌΠ΅Π½: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ² ΠΈΠ· ЀИО для Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² государствСнныС систСмы.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ очистки Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΎΡ‚ форматирования:

Π’Π΅Π»Π΅Ρ„ΠΎΠ½ = "+7 (999) 123-45-67";

Π’Π΅Π»Π΅Ρ„ΠΎΠ½Π¦ΠΈΡ„Ρ€Ρ‹ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π’Π΅Π»Π΅Ρ„ΠΎΠ½, "+", "");

Π’Π΅Π»Π΅Ρ„ΠΎΠ½Π¦ΠΈΡ„Ρ€Ρ‹ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π’Π΅Π»Π΅Ρ„ΠΎΠ½Π¦ΠΈΡ„Ρ€Ρ‹, "(", "");

Π’Π΅Π»Π΅Ρ„ΠΎΠ½Π¦ΠΈΡ„Ρ€Ρ‹ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π’Π΅Π»Π΅Ρ„ΠΎΠ½Π¦ΠΈΡ„Ρ€Ρ‹, ")", "");

Π’Π΅Π»Π΅Ρ„ΠΎΠ½Π¦ΠΈΡ„Ρ€Ρ‹ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π’Π΅Π»Π΅Ρ„ΠΎΠ½Π¦ΠΈΡ„Ρ€Ρ‹, "-", "");

Π’Π΅Π»Π΅Ρ„ΠΎΠ½Π¦ΠΈΡ„Ρ€Ρ‹ = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π’Π΅Π»Π΅Ρ„ΠΎΠ½Π¦ΠΈΡ„Ρ€Ρ‹, " ", "");

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: "79991234567"

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

Π Π°Π±ΠΎΡ‚Π° с ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ символами ΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ

Иногда Π² строках ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ Π³Π»Π°Π·Ρƒ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ портят структуру Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ символы Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš), ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки (Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ) ΠΈΠ»ΠΈ табуляции (Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ВАБ). Π’ 1Π‘ ΠΎΠ½ΠΈ доступны Ρ‡Π΅Ρ€Π΅Π· встроСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.

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

Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с символом, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π² стандартном Π½Π°Π±ΠΎΡ€Π΅ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘ΠΈΠΌΠ²ΠΎΠ». Она позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ символ ΠΏΠΎ Π΅Π³ΠΎ числовому ΠΊΠΎΠ΄Ρƒ (ASCII ΠΈΠ»ΠΈ Unicode). Зная ΠΊΠΎΠ΄ "мусорного" Π·Π½Π°ΠΊΠ°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ 1Π‘ ОписаниС Код (ΠΏΡ€ΠΈΠΌΠ΅Ρ€) ИспользованиС
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки 10 (0A) Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ строк Π² тСкстС
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.Π’Πš Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ 13 (0D) Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ пСрСноса Windows
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ВАБ Вабуляция 9 (09) Π’Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π² тСкстовых Ρ„Π°ΠΉΠ»Π°Ρ…
Π‘ΠΈΠΌΠ²ΠΎΠ»(0) Null-символ 0 (00) Часто встрСчаСтся Π² Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ удалСния Null-символа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π‘ΠœΡƒΡΠΎΡ€ΠΎΠΌ = "Π”Π°Π½Π½Ρ‹Π΅" + Π‘ΠΈΠΌΠ²ΠΎΠ»(0) + "ВСкст";

ЧистаяБтрока = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π‘ΠœΡƒΡΠΎΡ€ΠΎΠΌ, Π‘ΠΈΠΌΠ²ΠΎΠ»(0), "");

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Null-символы?

Null-символы (ΠΊΠΎΠ΄ 0) часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌ взаимодСйствии 1Π‘ с внСшними систСмами Ρ‡Π΅Ρ€Π΅Π· COM ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠ°ΠΊ тСкст. Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ строку ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСрфСйсы ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… API.

ИспользованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для слоТной очистки

Когда Π½Π°Π±ΠΎΡ€ удаляСмых символов Π²Π΅Π»ΠΈΠΊ ΠΈΠ»ΠΈ подчиняСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, использованиС мноТСствСнных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ становится нСэффСктивным ΠΈ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΊΠΎΠ΄. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят рСгулярныС выраТСния.

Π’ 1Π‘ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с рСгулярками ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ РСгулярноСВыраТСниС. Он позволяСт Π½Π°ΠΉΡ‚ΠΈ всС совпадСния ΠΏΠΎ слоТному ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρƒ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΡ… Π·Π° ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΈ санитизации Π΄Π°Π½Π½Ρ‹Ρ….

Бинтаксис рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² 1Π‘ стандартный. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классы символов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ \s для всСх ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ² ΠΈΠ»ΠΈ [^a-zA-Z0-9] для удалСния всСго, ΠΊΡ€ΠΎΠΌΠ΅ Π±ΡƒΠΊΠ² ΠΈ Ρ†ΠΈΡ„Ρ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ удалСния всСх Π½Π΅Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… символов ΠΈΠ· строки (оставляСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ русский ΠΈ английский Π°Π»Ρ„Π°Π²ΠΈΡ‚):

Ѐункция ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒΠ’ΠΎΠ»ΡŒΠΊΠΎΠ‘ΡƒΠΊΠ²Ρ‹(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°)

ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ = "[^Π°-яА-Π―a-zA-Z]";

Π Π΅Π³Π’Ρ‹Ρ€ = Новый РСгулярноСВыраТСниС(ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½);

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π Π΅Π³Π’Ρ‹Ρ€.Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, "");

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

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

РСгулярки Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ для удалСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ символов. НапримСр, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ случайно Π²Π²Π΅Π» нСсколько ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² подряд, ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ \s+ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ ΠΈΡ… Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ±Π΅Π» ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ вовсС.

πŸ’‘

РСгулярныС выраТСния β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ для удалСния символов ΠΏΠΎ маскС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "всС, ΠΊΡ€ΠΎΠΌΠ΅ Ρ†ΠΈΡ„Ρ€"), Π½ΠΎ для простых Π·Π°Π΄Π°Ρ‡ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π΄ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° строк Π² запросах ΠΈ Π‘ΠšΠ”

Часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ символ ΠΈΠ· строки Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ нСпосрСдствСнно Π² запросС ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π―Π·Ρ‹ΠΊ запросов 1Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘ΠΎΠΊΡ€Π›ΠŸ, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² чистом Π²ΠΈΠ΄Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ тСкста запроса (зависит ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ, Π½ΠΎ классичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ).

Π’ схСмах ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘ΠšΠ”) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»Π΅ΠΉ. Если Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅, это дСлаСтся Ρ‡Π΅Ρ€Π΅Π· выраТСния Π² настройках ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. Однако, Ссли трСбуСтся Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ ΠΌΠ°ΠΊΠ΅Ρ‚Π°.

Для слоТных случаСв Π² запросах ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π‘ΠΎΠΊΡ€Π›ΠŸ ΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ, Π½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, дСфиса) Π²Π½ΡƒΡ‚Ρ€ΠΈ запроса Π±Π΅Π· использования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π’ Ρ‚Π°ΠΊΠΈΡ… ситуациях Π΄Π°Π½Π½Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π² Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠ΅Ρ€Π΅Π΄ основным Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.

  • πŸ“Š ИспользованиС Π‘ΠΎΠΊΡ€Π›ΠŸ Π² условии Π“Π”Π• для игнорирования ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΏΡ€ΠΈ сравнСнии.
  • βš™οΈ ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π‘ΠšΠ” для трансформации Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ.
  • πŸš€ Вынос Π»ΠΎΠ³ΠΈΠΊΠΈ очистки Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события ΠŸΡ€ΠΈΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π² запросС:

ВЫБРАВЬ

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура.НаимСнованиС КАК Имя,

Π‘ΠΎΠΊΡ€Π›ΠŸ(Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура.Артикул) КАК ΠΡ€Ρ‚ΠΈΠΊΡƒΠ»Π‘Π΅Π·ΠŸΡ€ΠΎΠ±Π΅Π»ΠΎΠ²

Π˜Π—

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΈ массовой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ строк Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΠΎΠ²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, создавая Π½ΠΎΠ²Ρ‹Π΅ строки Π² Ρ†ΠΈΠΊΠ»Π΅ Π±Π΅Π· нСобходимости. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² 1Π‘ ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСизмСняСмыми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π² контСкстС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π·Π°ΠΌΠ΅Π½Ρ‹), поэтому каТдая опСрация Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² памяти.

Если Π²Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» Π½Π° 100 000 строк ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ 5 Π·Π°ΠΌΠ΅Π½ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ сущСствСнной Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π½Π° сборщик мусора. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ количСства ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ использовании Π‘ΡƒΡ„Π΅Ρ€Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ…Π”Π°Π½Π½Ρ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими тСкстовыми Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Ссли это умСстно.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° частая ошибка β€” ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ. ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ символов Π²Π°Π»ΡŽΡ‚Ρ‹ ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ тысяч Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ настройки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ΠΎ, Ρ‡Ρ‚ΠΎ являСтся Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ числа Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π›ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΈ настроСк сСрвСра. ВсСгда тСстируйтС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ спСцсимволов Π½Π° тСстовой Π±Π°Π·Π΅, максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠΉ ΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ срСдС.

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

β˜‘οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками

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

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

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний символ ΠΈΠ· строки, Ссли я Π½Π΅ знаю, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ½?

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π›Π΅Π² Π² сочСтании с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°. ВычислитС Π΄Π»ΠΈΠ½Ρƒ строки, Π²Ρ‹Ρ‡Ρ‚ΠΈΡ‚Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈ Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ Π»Π΅Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π›Π΅Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) - 1). НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ строка Π½Π΅ пустая, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибки.

МоТно Π»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ символ ΠΏΠΎ Π΅Π³ΠΎ Unicode ΠΊΠΎΠ΄Ρƒ Π±Π΅Π· знания самого символа?

Π”Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘ΠΈΠΌΠ²ΠΎΠ»(Код). НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ символ с ΠΊΠΎΠ΄ΠΎΠΌ 160 (Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»), Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅: Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘ΠΈΠΌΠ²ΠΎΠ»(160), ""). Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для удалСния скрытых Π·Π½Π°ΠΊΠΎΠ² форматирования.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅ удаляСт всС вхоТдСния символа?

Ѐункция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ удаляСт всС вхоТдСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ символа. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ символы ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, латинская "Π°" ΠΈ кирилличСская "Π°"). Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ мСняСтС строку, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Π² Ρ†ΠΈΠΊΠ»Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

Как быстро ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ массив строк ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» Для КаТдого ΠΏΠΎ массиву. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° присваивайтС элСмСнту массива Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΎΠΊΡ€Π›ΠŸ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ массив являСтся ссылочным Ρ‚ΠΈΠΏΠΎΠΌ, измСнСния сохранятся. Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… рассмотритС использованиС Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°.

Π•ΡΡ‚ΡŒ Π»ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² скорости ΠΌΠ΅ΠΆΠ΄Ρƒ рСгулярками ΠΈ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ?

Π”Π°, Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это нативная низкоуровнСвая опСрация. РСгулярныС выраТСния Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ компиляции ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТного Π°Π½Π°Π»ΠΈΠ·Π° строки. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ рСгулярки Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° простыми функциями Π·Π°Π΄Π°Ρ‡Ρƒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.