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

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

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

Ѐункция Π‘Ρ€Π΅Π΄: классичСский способ извлСчСния

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

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

Π­Ρ‚ΠΎ частая ошибка для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° 1Π‘ с Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ символу с индСксом 0 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² runtime.

ПовСдСниС ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹

Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ строки, функция Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ строку, Π° Π½Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π­Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… условий.

Ѐункция Π›Π΅Π² ΠΈ ΠŸΡ€Π°Π²ΠΎ: Ρ€Π°Π±ΠΎΡ‚Π° с краями строки

Когда трСбуСтся Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ строки с самого Π½Π°Ρ‡Π°Π»Π° ΠΈΠ»ΠΈ с самого ΠΊΠΎΠ½Ρ†Π°, ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π›Π΅Π² ΠΈ ΠŸΡ€Π°Π²ΠΎ. Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ частными случаями Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ€Π΅Π΄, Π½ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ самодокумСнтируСмым.

Ѐункция Π›Π΅Π² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строку ΠΈ Π΄Π»ΠΈΠ½Ρƒ. Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ количСство символов с Π»Π΅Π²ΠΎΠ³ΠΎ края. Если Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Π°Ρ Π΄Π»ΠΈΠ½Π° большС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ строки, Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π° вся строка Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π±Π΅Π· ошибок. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ бСзопасной для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

Аналогично Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ функция ΠŸΡ€Π°Π²ΠΎ, которая Π±Π΅Ρ€Π΅Ρ‚ символы с ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ края. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠ΄Π°ΠΌΠΈ, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ суммами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅ строки.

  • πŸ“ Ѐункция Π›Π΅Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, 5) Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡΡ‚ΡŒ символов.
  • πŸ“ Ѐункция ΠŸΡ€Π°Π²ΠΎ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, 3) ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚ послСдниС Ρ‚Ρ€ΠΈ символа.
  • πŸ“ ОбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ фиксирован ΠΊΡ€Π°Π΅ΠΌ.
πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π›Π΅Π² ΠΈ ΠŸΡ€Π°Π²ΠΎ вмСсто Π‘Ρ€Π΅Π΄, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ† строки. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Поиск подстроки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Найти ΠΈ НайтиН

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

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

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ€Π΅Π΄ ΠΈΠ»ΠΈ Π›Π΅Π². НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ имя Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ всё, Ρ‡Ρ‚ΠΎ находится Π»Π΅Π²Π΅Π΅ Π½Π΅Ρ‘.

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

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

Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ строки Π½Π° части Ρ‡Π΅Ρ€Π΅Π· Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ

Для слоТных случаСв, ΠΊΠΎΠ³Π΄Π° строку Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° мноТСство частСй ΠΏΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŽ, сущСствуСт функция Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ. Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив строк, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ элСмСнты Π² Ρ†ΠΈΠΊΠ»Π΅.

Π­Ρ‚Π° функция особСнно эффСктивна ΠΏΡ€ΠΈ парсингС списков Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ удалСния пустых подстрок, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π»ΠΈΡˆΠ½ΠΈΡ… элСмСнтов массива.

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

πŸ’‘

ΠŸΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ CSV-Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ с Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ"Π£Π΄Π°Π»ΡΡ‚ΡŒ пустыС подстроки", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ Π² исходном тСкстС.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ символов

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

Ѐункция Π‘ΠΎΠΊΡ€Π› удаляСт ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ слСва, Π‘ΠΎΠΊΡ€ΠŸ β€” справа, Π° Π‘ΠΎΠΊΡ€Π›ΠŸ β€” с ΠΎΠ±Π΅ΠΈΡ… сторон ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ИспользованиС этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ позиция ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ символы ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки ΠΈ табуляции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников. Π˜Ρ… Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ошибки ΠΏΡ€ΠΈ подсчСтС Π΄Π»ΠΈΠ½Ρ‹ строки.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ сокращСния ΡƒΠ΄Π°Π»ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ (символ 32). Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ табуляции ΠΈ пСрСноса строки ΠΎΠ½ΠΈ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°ΡŽΡ‚. Для ΠΏΠΎΠ»Π½ΠΎΠΉ очистки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π°ΠΌΠ΅Π½Ρƒ символов.

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

Π’Π°Π±Π»ΠΈΡ†Π° сравнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ знания, рассмотрим основныС различия Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ПониманиС этих нюансов ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ инструмСнт для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ.

Ѐункция Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НумСрация ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ
Π‘Ρ€Π΅Π΄ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π‘ 1 Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ указания Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ Π±Π΅Ρ€Π΅Ρ‚ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°
Π›Π΅Π² Π‘Ρ‚Ρ€ΠΎΠΊΠ° Н/Π” ВсСгда Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа
ΠŸΡ€Π°Π²ΠΎ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Н/Π” ВсСгда Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ послСдним символом
Найти Число Π‘ 1 Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0, Ссли Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ
Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° Число Н/Π” Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство символов

ИспользованиС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊΠ°ΠΊ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠΈ ускорит написаниС ΠΊΠΎΠ΄Π°. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Π»ΠΎ отсчСта.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Ρ€Π΅Π·Π°Π½ΠΈΠ΅ΠΌ строки

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

Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ символами

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ€Π΅Π΄, Π›Π΅Π² ΠΈ ΠŸΡ€Π°Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с логичСскими символами, Π° Π½Π΅ с Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ тСкста Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ строками (Π±ΠΎΠ»Π΅Π΅ 32000 символов Π² старых вСрсиях ΠΈΠ»ΠΈ спСцифичСских контСкстах) ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒΡΡ. Π Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° этапы.

ВСстированиС Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ принадлСТности ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ скрытыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ отобраТСния ΠΈΠ»ΠΈ усСчСния тСкста.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки

Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ сцСнарий: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΊΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π° ΠΈΠ· строки Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°"ИНН: 1234567890; НазваниС: ООО Ромашка". ΠœΡ‹ Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой ΠΈ Π²Ρ‹Ρ€Π΅ΠΆΠ΅ΠΌ Ρ‡Π°ΡΡ‚ΡŒ строки Π΄ΠΎ Π½Π΅Ρ‘.

Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° ="ИНН: 1234567890; НазваниС: ООО Ромашка";

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠ Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Ρ = Найти(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°,";");

Если ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠ Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Ρ > 0 Π’ΠΎΠ³Π΄Π°

Π§Π°ΡΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ = Π‘Ρ€Π΅Π΄(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, 1, ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠ Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Ρ - 1);

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

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” Ρ€Π°Π±ΠΎΡ‚Π° с пустыми строками. ВсСгда провСряйтС, Ρ‡Ρ‚ΠΎ исходная строка Π½Π΅ Ρ€Π°Π²Π½Π° НСопрСдСлСно ΠΈΠ»ΠΈ пустой строкС ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ лишниС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ рСгистрации.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° запуска (толстый/Ρ‚ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚). БвСряйтС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ Ρ‡Π΅Ρ€Π΅Π· рСгулярныС выраТСния

Π’ слоТных случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ РСгулярноСВыраТСниС. Он позволяСт Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ части строки ΠΏΠΎ слоТным шаблонам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠ· смСшанного тСкста.

Π§Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ функция Π‘Ρ€Π΅Π΄, Ссли Π΄Π»ΠΈΠ½Π° большС остатка строки?

Ѐункция Π²Π΅Ρ€Π½Π΅Ρ‚ всС доступныС символы ΠΎΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки. Ошибки Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ просто Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€ΠΎΡ‡Π΅ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы Π² 1Π‘?

НСт, Π² стандартных функциях Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы нСдопустимы ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ ΠΊ ошибкС выполнСния. НумСрация всСгда начинаСтся с 1.

Как Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ тСкст ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ раздСлитСлями?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Найти для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ раздСлитСля, Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, начиная поиск с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ + 1. ПослС этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ€Π΅Π΄ с рассчитанными ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Найти ΠΈ НайтиН?

Ѐункция Найти ΠΈΡ‰Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ подстроки слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Ѐункция НайтиН ΠΈΡ‰Π΅Ρ‚ послСднСС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅, сканируя строку справа Π½Π°Π»Π΅Π²ΠΎ.

Как ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ссли подстрока Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°?

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