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

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

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

Алгоритм Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° символов строки

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

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°ΠΌ понадобится функция БтрНайти ΠΈΠ»ΠΈ прямой доступ ΠΊ символу ΠΏΠΎ индСксу. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠšΠΎΠ΄Π‘ΠΈΠΌΠ²ΠΎΠ»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ числовоС прСдставлСниС символа ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΊΠΎΠ΄Π°ΠΌΠΈ Ρ†ΠΈΡ„Ρ€ ΠΎΡ‚ 0 Π΄ΠΎ 9.

ΠšΠΎΠ΄Ρ‹ Ρ†ΠΈΡ„Ρ€ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ASCII (ΠΈ совмСстимых ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… 1Π‘) ΠΈΠ΄ΡƒΡ‚ подряд. Код символа "0" Ρ€Π°Π²Π΅Π½ 48, Π° "9" β€” 57. Если ΠΊΠΎΠ΄ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ символа ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² этот Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΠΌΡ‹ фиксируСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅ΠΌ Ρ†ΠΈΠΊΠ». Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½Π° ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½Π° спСцсимволами.

Ѐункция ΠΠ°ΠΉΡ‚ΠΈΠŸΠ΅Ρ€Π²ΡƒΡŽΠ¦ΠΈΡ„Ρ€Ρƒ(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°)

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = 0;

Для Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ = 1 По Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°) Π¦ΠΈΠΊΠ»

Π‘ΠΈΠΌΠ²ΠΎΠ» = Π‘Ρ€Π΅Π΄(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ, 1);

КодБимвола = Π‘Ρ‚Ρ€ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠšΠΎΠ΄Π‘ΠΈΠΌΠ²ΠΎΠ»Π°(Π‘ΠΈΠΌΠ²ΠΎΠ»);

Если КодБимвола >= 48 И КодБимвола <= 57 Π’ΠΎΠ³Π΄Π°

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ;

ΠŸΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ;

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

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ;

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ строки. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… тСкстовых ΠΏΠΎΠ»Π΅ΠΉ (Π±ΠΎΠ»Π΅Π΅ 10 000 символов) Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ массовых опСрациях.

πŸ’‘

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

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ

Начиная с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘, появился ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом β€” функция Π Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚. Она позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ структуру ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ строки. Π­Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ.

Π‘ΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ "Ρ€Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒ" строку ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, Π³Π΄Π΅ ΠΌΡ‹ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ‰Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†ΠΈΡ„Ρ€. Π¨Π°Π±Π»ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ, ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹. Если строка соотвСтствуСт ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ структуру с Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ полями, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π»Π΅Π³ΠΊΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Однако, для Π·Π°Π΄Π°Ρ‡ΠΈ поиска ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π΅Π½, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ позиция, Π° Π½Π΅ само Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли ваша Ρ†Π΅Π»ΡŒ β€” сразу ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ число, отбросив вСсь preceding тСкст, этот способ ΠΊΡ€Π°ΠΉΠ½Π΅ эффСктивСн. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… благодаря Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π²ΠΈΠΆΠΊΠ°.

  • πŸ” Ѐункция позволяСт ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ символы Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹.
  • ⚑ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° происходит Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.
  • πŸ›  ВрСбуСтся Π·Π½Π°Π½ΠΈΠ΅ синтаксиса шаблонов растягивания тСкста.
πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ поиска Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π ΡƒΡ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ Π² Ρ†ΠΈΠΊΠ»Π΅
РСгулярныС выраТСния
Ѐункция Π Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚
БобствСнная внСшняя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

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

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

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ, достаточно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простой ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ \d, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт Π»ΡŽΠ±ΠΎΠΌΡƒ символу Ρ†ΠΈΡ„Ρ€Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄ Найти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° рСгулярного выраТСния Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния. Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Π° ΠΈ Π»Π΅Π³ΠΊΠΎ читаСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌΠΈ с синтаксисом Regex.

Бинтаксис рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² 1Π‘ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ стандартному.NET ΠΈΠ»ΠΈ Perl. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹, Π½ΠΎ ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹ подряд, игнорируя ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅. Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΠΉΡ‚ΠΈ Ρ†ΠΈΡ„Ρ€Ρƒ Π΄Π°ΠΆΠ΅ Π² ΠΎΡ‡Π΅Π½ΡŒ спСцифичном контСкстС, Π³Π΄Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄Π°Π΄ΡƒΡ‚ сбой.

Ѐункция НайтиЦифруРСгуляркой(ВСкст)

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

Если Π Π΅Π³Π’Ρ‹Ρ€.Найти(ВСкст) Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π Π΅Π³Π’Ρ‹Ρ€.ИндСкс + 1; // ИндСкс Π² 1Π‘ начинаСтся с 1

Π˜Π½Π°Ρ‡Π΅

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

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

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

ΠΡŽΠ°Π½ΡΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с рСгулярными выраТСниями

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ РСгулярноСВыраТСниС чувствитСлСн ΠΊ рСгистрам, Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Ρ„Π»Π°Π³ΠΈ. Для поиска Ρ†ΠΈΡ„Ρ€ рСгистр Π½Π΅ Π²Π°ΠΆΠ΅Π½, Π½ΠΎ ΠΏΡ€ΠΈ поискС Π±ΡƒΠΊΠ² ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³ ig (ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСгистра) ΠΈΠ»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ символы Π² шаблонС.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² поиска

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

ΠœΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· Ρ‚Ρ€Π΅Ρ… основных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ», рСгулярныС выраТСния ΠΈ встроСнныС строковыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ для ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… строк (Π΄ΠΎ 50 символов) Ρ€Π°Π·Π½ΠΈΡ†Π° negligible. Однако ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Ρ‹ строки ΠΈ количСства ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° мСняСтся.

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

ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ (мс) Π½Π° 1000 строк Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ
Π ΡƒΡ‡Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ» 15-20 Высокая БрСдняя
РСгулярныС выраТСния 8-12 БрСдняя ΠžΡ‡Π΅Π½ΡŒ высокая
Π Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚ 5-8 Низкая Высокая
πŸ’‘

Для Ρ€Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‰Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² записСй Π² Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… заданиях ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ отдаСтся скорости выполнСния.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ случаи

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

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

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт β€” ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° NULL-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Если Π½Π° Π²Ρ…ΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π° Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ВсСгда провСряйтС Ρ‚ΠΈΠΏ входящСго ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

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

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Π² конфигурациях

Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ: очистка поля "Артикул" ΠΎΡ‚ мусора. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ часто вводят Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ€ΠΎΠ΄Π΅ "Арт: 123-Π±/Ρƒ". Нам Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΡ„Ρ€Ρ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ поиска ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ всС лишнСС слСва.

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” валидация Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹Ρ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ². ΠŸΠ΅Ρ€Π΅Π΄ сохранСниСм Π½ΠΎΠΌΠ΅Ρ€Π° Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ начинаСтся с Ρ†ΠΈΡ„Ρ€Ρ‹ (ΠΈΠ»ΠΈ Π·Π½Π°ΠΊΠ° плюс, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Ρ†ΠΈΡ„Ρ€Π°). Поиск ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π² ΠΏΠΎΠ»Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "8900.. (ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ)".

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

  • πŸ“„ ΠŸΠ°Ρ€ΡΠΈΠ½Π³ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΈΠ· тСкстовых ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².
  • πŸ“ž Валидация ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².
  • πŸ“¦ АвтоматичСская катСгоризация Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΏΠΎ прСфиксу Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Π°.

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΏΠ΅Ρ€Π΅Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ

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

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

Как Π½Π°ΠΉΡ‚ΠΈ послСднюю Ρ†ΠΈΡ„Ρ€Ρƒ Π² строкС?

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

МоТно Π»ΠΈ Π½Π°ΠΉΡ‚ΠΈ Ρ†ΠΈΡ„Ρ€Ρƒ Π² запросС 1Π‘?

Π’ языкС запросов 1Π‘ Π½Π΅Ρ‚ прямой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для поиска ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ эту Π»ΠΎΠ³ΠΈΠΊΡƒ выносят Π² ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ запроса ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ссли структура Π΄Π°Π½Π½Ρ‹Ρ… позволяСт. Π’ самом запросС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠŸΠžΠ”ΠžΠ‘ΠΠž для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ, Π½ΠΎ Π½Π΅ для извлСчСния ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π² строкС нСсколько Ρ†ΠΈΡ„Ρ€, Π° Π½ΡƒΠΆΠ½Π° конкрСтная?

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

Π Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π»ΠΈ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² 1Π‘ для Android?

Π”Π°, мобильная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ основныС строковыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с рСгулярными выраТСниями. Однако ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ограничСния Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ… Π² зависимости ΠΎΡ‚ вСрсии прилоТСния. РСкомСндуСтся Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΌ устройствС.