ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ появлСния Π»ΠΈΡˆΠ½ΠΈΡ… символов Π² Π΄Π°Π½Π½Ρ‹Ρ…

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

Вакая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π° ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ JSON ΠΈΠ»ΠΈ XML. Если внСшняя систСма ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ строки, ΡƒΠΆΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π° ваша конфигурация добавляСт свои ΠΎΠ±Ρ€Π°ΠΌΠ»ΡΡŽΡ‰ΠΈΠ΅ символы ΠΏΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ эффСкт Β«Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ экранирования». Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

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

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ для очистки

Π‘Π°ΠΌΡ‹ΠΉ простой ΠΈ распространСнный способ удалСния Π»ΠΈΡˆΠ½ΠΈΡ… символов β€” ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ΄Π΅Π°Π»Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС вхоТдСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ символа ΠΏΠΎ всСй Π΄Π»ΠΈΠ½Π΅ строки Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° контСкста ΠΈΠ»ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

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

Рассмотрим практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ пСрСмСнная, содСрТащая «грязныС» Π΄Π°Π½Π½Ρ‹Π΅:

Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° ="""Π’ΠΎΠ²Π°Ρ€"""Артикул""";

ΠžΡ‡ΠΈΡ‰Π΅Π½Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°,"""","");

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

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

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

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ

Часто трСбуСтся ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ строки, сохранив Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру тСкста Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΠΎΠΉ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ комбинация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками: БтрНачинаСтсяБ, БтрЗаканчиваСтсяНа, Π›Π΅Π² ΠΈ ΠŸΡ€Π°Π².

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… символов:

Если БтрНачинаСтсяБ(ВСкст,"""") Π’ΠΎΠ³Π΄Π°

ВСкст = Π‘Ρ€Π΅Π΄(ВСкст, 2);

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

Если БтрЗаканчиваСтсяНа(ВСкст,"""") Π’ΠΎΠ³Π΄Π°

ВСкст = Π›Π΅Π²(ВСкст, Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ВСкст) - 1);

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

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

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

πŸ’‘

ΠŸΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π‘ΠΆΠ°Ρ‚ΡŒΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΌΡƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° строки.

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

Для Π±ΠΎΠ»Π΅Π΅ слоТных сцСнариСв очистки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ экранированы слэшами ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ символами, Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ использованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π’ 1Π‘ для этого ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ РСгулярноСВыраТСниС.

РСгулярныС выраТСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ поиска. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈ ΠΊΠΎΠ½Ρ†Π΅ строки, игнорируя ΠΈΡ… Π² сСрСдинС, ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ экранированныС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ \", оставив ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт Π² арсСналС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования рСгулярного выраТСния для удалСния ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΏΠΎ краям строки:

Π Π΅Π³Π’Ρ‹Ρ€ = Новый РСгулярноСВыраТСниС("^""|""$");

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

Π¨Π°Π±Π»ΠΎΠ½ ^""|""$ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: Π½Π°ΠΉΡ‚ΠΈ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π² Π½Π°Ρ‡Π°Π»Π΅ строки (^) Π˜Π›Π˜ (|) Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ Π² ΠΊΠΎΠ½Ρ†Π΅ строки ($). ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ подстройку ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ совпадСния. Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с цикличСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ.

ИспользованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊ синтаксису шаблонов. Ошибка Π² ΠΎΠ΄Π½ΠΎΠΌ символС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ шаблон Π½Π΅ сработаСт ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΡƒΠ΄Π°Π»ΠΈΡ‚ лишнСС. РСкомСндуСтся Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΠ΅Ρ€Π΅Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ Π² Π±ΠΎΠ΅Π²ΠΎΠΉ ΠΊΠΎΠ΄.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ экранирования Π² 1Π‘

Π’ 1Π‘ для обозначСния ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² рСгулярном Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш. Однако, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ само Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² строкС 1Π‘, слэш Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. НапримСр, для поиска Ρ†ΠΈΡ„Ρ€Ρ‹ пишСм"\\d", Π° Π½Π΅"\d".

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° JSON

БпСцифичСская Π·Π°Π΄Π°Ρ‡Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ JSON. Часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ JSON-строку, удаляя ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ошибкам Ρ‚ΠΈΠΏΠΎΠ².

Если строка прСдставляСт собой Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ JSON, ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² Π½Π΅ΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ структурными элСмСнтами. Π˜Ρ… ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Β«Π² Π»ΠΎΠ±Β» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ JSON Π² Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡƒΡŽ ΠΊΠ°ΡˆΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ стандартный парсСр 1Π‘ Π½Π΅ смоТСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” использованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π§Ρ‚Π΅Π½ΠΈΠ΅JSON.

Рассмотрим Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ сравнСния ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ строковых Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…:

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… НаличиС ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Риск ошибки
ВСкст ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Ρ‹Π΅ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Низкий
ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠžΠ±Ρ€Π°ΠΌΠ»ΡΡŽΡ‰ΠΈΠ΅ Π›Π΅Π²/ΠŸΡ€Π°Π² + ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ
JSON Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON Высокий (ΠΏΡ€ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΌ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ)
XML Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π§Ρ‚Π΅Π½ΠΈΠ΅XML Высокий

ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ JSON ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π§Ρ‚Π΅Π½ΠΈΠ΅JSON автоматичСски ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΊΠ°ΠΊ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΠΈ строки ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ «чистоС» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π±Π΅Π· ΠΎΠ±Ρ€Π°ΠΌΠ»ΡΡŽΡ‰ΠΈΡ… символов. Π ΡƒΡ‡Π½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ ΠΈΠ· JSON-структуры допустимо Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌ JSON, Π° просто ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‚ Π΅Π³ΠΎ Π²ΠΈΠ΄.

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

πŸ’‘

Никогда Π½Π΅ удаляйтС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈΠ· JSON-строки Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ парсингом. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ срСдства чтСния JSON, ΠΈΠ½Π°Ρ‡Π΅ структура Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½Π° Π±Π΅Π· возмоТности восстановлСния.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ прСдостСрСТСния

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со строками Π² 1Π‘ сущСствуСт ряд ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠ°ΠΌΠ½Π΅ΠΉ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт Π·Π½Π°Ρ‚ΡŒ. Одна ΠΈΠ· частых ошибок β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² строках, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников, Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ΅ количСство Π±Π°ΠΉΡ‚.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Β«ΡƒΠΌΠ½Ρ‹Π΅Β» ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (Π΅Π»ΠΎΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ Π»Π°ΠΏΠΊΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто приходят ΠΈΠ· тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ Π²Π΅Π±-Ρ„ΠΎΡ€ΠΌ. Они ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ΄Ρ‹ символов ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ стандартным поиском ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ".

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Word ΠΈΠ»ΠΈ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Π² поля 1Π‘, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π½Π° типографскиС («»). Ѐункция Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ символом ΠΈΡ… Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ символа ΠΈΠ»ΠΈ спСцсимволы для поиска.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт β€” ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Если Π²Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ массив ΠΈΠ· ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² строк Π² Ρ†ΠΈΠΊΠ»Π΅, использованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простыС строковыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎ экранированиС Π² самом ΠΊΠΎΠ΄Π΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² строкС символ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ \, Π² ΠΊΠΎΠ΄Π΅ 1Π‘ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ \\. ΠŸΡƒΡ‚Π°Π½ΠΈΡ†Π° Π² экранировании часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡ‰Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΡ‚ символ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. ВсСгда свСряйтС синтаксис с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ для вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°.

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

Как ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ссли ΠΈΡ… количСство нСизвСстно?

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

МоТно Π»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ слова?

Π”Π°, для этого ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ рСгулярныС выраТСния с использованиСм Π³Ρ€ΡƒΠΏΠΏ Π·Π°Ρ…Π²Π°Ρ‚Π°. НапримСр, шаблон ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт Π±ΡƒΠΊΠ²Π°, ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ, сохраняя Π±ΡƒΠΊΠ²Ρƒ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌΠΈ срСдствами Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· затирания сосСдних символов.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС удалСния ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ строка стала пустой?

ВСроятно, исходная строка состояла Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ""). ПослС удалСния символов Π² Π½Π΅ΠΉ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ. ВсСгда провСряйтС Π΄Π»ΠΈΠ½Ρƒ строки послС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ очистки, Ссли дальнСйшая Π»ΠΎΠ³ΠΈΠΊΠ° зависит ΠΎΡ‚ наличия тСкста.

Как ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ строку с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ?

НСобходимо Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°ΠΌΠ΅Π½Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ. Π‘Π½Π°Ρ‡Π°Π»Π° Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ", Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ', Π° Π·Π°Ρ‚Π΅ΠΌ, ΠΏΡ€ΠΈ нСобходимости, типографскиС ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. МоТно ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ это Π² ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ВлияСт Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π½Π° Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…?

НСт, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… остаСтся Π‘Ρ‚Ρ€ΠΎΠΊΠ°. ΠœΠ΅Π½ΡΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ содСрТаниС. Однако, Ссли строка прСдставляла собой число Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "100"), Ρ‚ΠΎ послС удалСния ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚ΠΈΠΏ Число Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Число.