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

Новички часто Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, substring ΠΈΠ»ΠΈ slice ΠΈΠ· JavaScript), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² 1Π‘ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΠ½Π°Ρ‡Π΅ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. А ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π·Π½Π°ΡŽΡ‚: Π΄Π°ΠΆΠ΅ для Ρ‚Π°ΠΊΠΎΠΉ простой Π·Π°Π΄Π°Ρ‡ΠΈ Π²Π°ΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, учитывая Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ вСрсиями ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ всС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ способы β€” ΠΎΡ‚ самого ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ малоизвСстных нюансов.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ Β«ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹ΠΌ камням»: Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли строка пустая? Как ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅ символы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ΅Ρ€ΠΎΠ³Π»ΠΈΡ„Ρ‹ ΠΈΠ»ΠΈ смайлы)? ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ функция ΠŸΡ€Π°Π²()? ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° эти вопросы сэкономят Π²Π°ΠΌ часы ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Бпособ 1: ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠŸΡ€Π°Π²() + Π‘Ρ€Π΅Π΄() β€” классичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄

Π‘Π°ΠΌΡ‹ΠΉ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ ΠΈ распространённый ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” комбинация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠŸΡ€Π°Π²() (для получСния послСднСго символа) ΠΈ Π‘Ρ€Π΅Π΄() (для извлСчСния всСх символов, ΠΊΡ€ΠΎΠΌΠ΅ послСднСго). Π­Ρ‚ΠΎΡ‚ способ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΎ всСх вСрсиях 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для Π·Π°ΠΌΠ΅Π½Ρ‹ послСднСго символа Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€1";

ПослСднийБимвол = ΠŸΡ€Π°Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, 1); // ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ послСдний символ ("1")

НоваяБтрока = Π›Π΅Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) - 1) + "."; // "ΠŸΡ€ΠΈΠΌΠ΅Ρ€."

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

  • βœ… ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° β€” понятно Π΄Π°ΠΆΠ΅ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ
  • βœ… Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ со всСми вСрсиями 1Π‘ 8.x
  • βœ… ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ рСсурсов

Но Π΅ΡΡ‚ΡŒ ΠΈ Π½ΡŽΠ°Π½ΡΡ‹:

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если строка пустая (Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) = 0), функция Π›Π΅Π²() Π²Π΅Ρ€Π½Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ВсСгда провСряйтС Π΄Π»ΠΈΠ½Ρƒ строки ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ!

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ символа

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

Бпособ 2: Ѐункция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ() β€” ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ символ

Если Π²Π°ΠΌ извСстно, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ символ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, всСгда удаляСтС Π·Π°ΠΏΡΡ‚ΡƒΡŽ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠ»ΠΈ замСняСтС дСфис Π½Π° ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅), ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½ для ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ послСдний символ прСдсказуСм.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π·Π°ΠΌΠ΅Π½Π° послСднСй запятой Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = "яблоки, Π³Ρ€ΡƒΡˆΠΈ, Π±Π°Π½Π°Π½Ρ‹,";

НоваяБтрока = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ",", ";", , , Π˜ΡΡ‚ΠΈΠ½Π°, 1); // ЗамСняСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний символ

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ():

  • πŸ“Œ Π˜ΡΠΊΠ°Ρ‚ΡŒΠ‘ ΠΊΠΎΠ½Ρ†Π° β€” Ссли Π˜ΡΡ‚ΠΈΠ½Π°, поиск ΠΈΠ΄Ρ‘Ρ‚ с ΠΊΠΎΠ½Ρ†Π° строки
  • πŸ“Œ ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ—Π°ΠΌΠ΅Π½ β€” ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ число Π·Π°ΠΌΠ΅Π½ (здСсь 1 β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний символ)

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΎΠΉ символ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Для динамичСских сцСнариСв (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ любой послСдний символ) ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы.

πŸ’‘

Если строка заканчиваСтся нСсколькими ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ символами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "тСкст!!"), Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠŸΡ€Π°Π²() + Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ() с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

Бпособ 3: РСгулярныС выраТСния β€” для слоТных условий

Когда трСбуСтся Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний символ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ Ρ†ΠΈΡ„Ρ€Π°, ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π½Π΅Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ символы Π² ΠΊΠΎΠ½Ρ†Π΅), Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят рСгулярныС выраТСния. Π’ 1Π‘ для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ РСгулярноСВыраТСниС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ послСднСго символа, Ссли это Ρ†ΠΈΡ„Ρ€Π°:

Π Π’ = Новый РСгулярноСВыраТСниС("\d$");  // Π˜Ρ‰Π΅ΠΌ Ρ†ΠΈΡ„Ρ€Ρƒ Π² ΠΊΠΎΠ½Ρ†Π΅ строки

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = "Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚123";

Если Π Π’.ВСст(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) Π’ΠΎΠ³Π΄Π°

НоваяБтрока = Π Π’.Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ""); // "Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚12"

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

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ:

  • πŸ” Π’ΠΎΡ‡Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ условиями Π·Π°ΠΌΠ΅Π½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… символов)
  • 🌍 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Unicode (Π²Π°ΠΆΠ½ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ, ΠΈΠ΅Ρ€ΠΎΠ³Π»ΠΈΡ„Π°ΠΌΠΈ)
  • πŸ› οΈ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ слоТных манипуляций (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдниС 3 символа)
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: РСгулярныС выраТСния Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ стандартных строковых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… для простых Π·Π°Π΄Π°Ρ‡ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½Π° Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ.
Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅ символы?

Π’ 1Π‘ строка "ΠΏΡ€ΠΈΠ²Π΅Ρ‚πŸ˜Š" ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ 7 (6 Π±ΡƒΠΊΠ² + 1 смайл Π² 2 Π±Π°ΠΉΡ‚Π°). Ѐункция Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() Π²Π΅Ρ€Π½Ρ‘Ρ‚ 7, Π½ΠΎ ΠŸΡ€Π°Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, 1) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ смайл Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Для Ρ‚ΠΎΡ‡Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ€Π΅Π΄() с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ рСгулярныС выраТСния.

Бпособ 4: Π¦ΠΈΠΊΠ» ΠΏΠΎ символам β€” ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½Π° максимальная ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ

Для Π·Π°Π΄Π°Ρ‡, Π³Π΄Π΅ трСбуСтся посимвольная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Π½Π°Π»ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ), ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ с использованиСм Ρ†ΠΈΠΊΠ»Π°. Π­Ρ‚ΠΎ самый рСсурсоёмкий способ, Π½ΠΎ ΠΎΠ½ Π΄Π°Ρ‘Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π·Π°ΠΌΠ΅Π½Π° послСднСго символа Π½Π° Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΡƒ, Ссли это Π±ΡƒΠΊΠ²Π°:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = "Π€Π°ΠΉΠ»A";

ПослСднийИндСкс = Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°);

Если ПослСднийИндСкс > 0 Π’ΠΎΠ³Π΄Π°

ПослСднийБимвол = Π‘Ρ€Π΅Π΄(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ПослСднийИндСкс, 1);

Если ПослСднийБимвол >= "А" И ПослСднийБимвол <= "я" Π’ΠΎΠ³Π΄Π°

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π›Π΅Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ПослСднийИндСкс - 1) + ""; // "Π€Π°ΠΉΠ»"

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

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

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄:

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°
НуТно Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ алфавитуРСгулярныС выраТСния
БлоТная Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π°ΠΌΠ΅Π½Ρ‹Π—Π°ΠΌΠ΅Π½Π° Π² зависимости ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… символовВлоТСнныС Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ()
Π Π°Π±ΠΎΡ‚Π° с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° строк с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠœΠΈΠ½ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° β€” низкая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… строках (тысячи символов). Для Ρ‚Π°ΠΊΠΈΡ… случаСв Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы.

Бпособ 5: Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ β€” для нСстандартных Π·Π°Π΄Π°Ρ‡

Π’ Ρ€Π΅Π΄ΠΊΠΈΡ… случаях стандартных срСдств 1Π‘ нСдостаточно β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со строками. Π’ΠΎΠ³Π΄Π° Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (DLL, COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹) ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° C#/C++.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Unicode:

// ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ внСшнюю Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для Windows)

ΠŸΡƒΡ‚ΡŒΠšDLL = "C:\Temp\StringUtils.dll";

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ = Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("StringUtils.StringHelper");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ReplaceLastChar("Π’Π΅ΡΡ‚πŸ˜Š", "!"); // "ВСст!"

Когда это ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ:

  • πŸ”§ Π Π°Π±ΠΎΡ‚Π° с Ρ€Π΅Π΄ΠΊΠΈΠΌΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UTF-32)
  • πŸš€ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² строк)
  • πŸ”’ Π—Π°Π΄Π°Ρ‡ΠΈ, связанныС с ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с обновлСниями 1Π‘ ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π² администратора. ВсСгда тСстируйтС ΠΈΡ… Π½Π° ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ систСму.
πŸ“Š Какой способ Π·Π°ΠΌΠ΅Π½Ρ‹ символов Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠŸΡ€Π°Π²/Π‘Ρ€Π΅Π΄)
РСгулярныС выраТСния
Π¦ΠΈΠΊΠ»Ρ‹ ΠΏΠΎ символам
Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

Π”Π°ΠΆΠ΅ Π² простой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ послСднСго символа Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Π΄ΡƒΡ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠ΄Π°. Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ самыС распространённыС:

Бамая критичная ошибка: ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ пустых строк. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ€ΠΎΠ΄Π΅ Π›Π΅Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) - 1) Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли строка пустая. ВсСгда добавляйтС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ:

Если Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) = 0 Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ""; // ΠΈΠ»ΠΈ другая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

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

Π”Ρ€ΡƒΠ³ΠΈΠ΅ распространённыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  • ❌ Π—Π°ΠΌΠ΅Π½Π° прСдпослСднСго символа вмСсто послСднСго (ошибка Π² индСксах)
  • ❌ НСучёт рСгистра ΠΏΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "А" ΠΈ "Π°" β€” Ρ€Π°Π·Π½Ρ‹Π΅ символы)
  • ❌ ИспользованиС Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() для ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… строк Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ

Как Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄:

  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ с пустой строкой
  2. ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π° строках с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅
  3. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Unicode-символы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "ΠΏΡ€ΠΈΠ²Π΅Ρ‚πŸ‘‹")
πŸ’‘

ВсСгда тСстируйтС ΠΊΠΎΠ΄ Π·Π°ΠΌΠ΅Π½Ρ‹ символов Π½Π° ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаях: пустая строка, строка ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа, строка с ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ символами.

FAQ: ЧастыС вопросы ΠΏΠΎ Π·Π°ΠΌΠ΅Π½Π΅ символов Π² 1Π‘

МоТно Π»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдниС N символов, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½?

Π”Π°, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Π›Π΅Π²() ΠΈ Π‘Ρ€Π΅Π΄() с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½ΡƒΠΆΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдниС 3 символа:

НоваяБтрока = Π›Π΅Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) - 3) + "XYZ";
ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠŸΡ€Π°Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, 1) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΡ‚ символ для ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹?

Π­Ρ‚ΠΎ связано с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ. Π’ 1Π‘ 8.3 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ UTF-16, Π³Π΄Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ символы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Ρ‘") Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 2 Π±Π°ΠΉΡ‚Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ€Π΅Π΄() с явным ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠ»ΠΈ рСгулярныС выраТСния.

Как Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний символ Π² строкС, хранящСйся Π² справочникС?

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π·Π°ΠΌΠ΅Π½Ρƒ, Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("Π’ΠΎΠ²Π°Ρ€1");

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = ΠžΠ±ΡŠΠ΅ΠΊΡ‚.НаимСнованиС;

ΠžΠ±ΡŠΠ΅ΠΊΡ‚.НаимСнованиС = Π›Π΅Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) - 1) + "А";

ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ();

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ссли Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…!

Π•ΡΡ‚ΡŒ Π»ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ?

Π”Π°, ΠΏΠΎ скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ (ΠΎΡ‚ быстрого ΠΊ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡƒ):

  1. ΠŸΡ€Π°Π²() + Π‘Ρ€Π΅Π΄() β€” самый быстрый
  2. Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ() β€” Ρ‡ΡƒΡ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈΠ·-Π·Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ
  3. РСгулярныС выраТСния β€” ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π² 5-10 Ρ€Π°Π·
  4. Π¦ΠΈΠΊΠ»Ρ‹ ΠΏΠΎ символам β€” самыС ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ (особСнно Π½Π° Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строках)

Для массовой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (тысячи строк) ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

МоТно Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ?

Π”Π°, Ссли Π²Ρ‹ сохранитС ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ строку Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ:

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = Π‘Ρ‚Ρ€ΠΎΠΊΠ°;  // БохраняСм копию

// ... ΠΊΠΎΠ΄ Π·Π°ΠΌΠ΅Π½Ρ‹ ...

Если Ошибка Π’ΠΎΠ³Π΄Π°

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°; // ΠžΡ‚ΠΊΠ°Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

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