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

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

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

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘ΠΈΠΌΠ²

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

Π›ΠΎΠ³ΠΈΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² цикличСском ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π΅ ΠΏΠΎ всСй строкС. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа провСряСтся, ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π»ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ 1040 Π΄ΠΎ 1071 (Π·Π°Π³Π»Π°Π²Π½Ρ‹Π΅ русскиС Π±ΡƒΠΊΠ²Ρ‹) ΠΈΠ»ΠΈ ΠΎΡ‚ 1072 Π΄ΠΎ 1103 (строчныС русскиС Π±ΡƒΠΊΠ²Ρ‹). Аналогичная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° проводится для Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Ρ‹. Если хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ символ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² эти Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹, функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π›ΠΎΠΆΡŒ.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΊΠΎΠ΄Π°ΠΌΠΈ символов ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π±ΡƒΠΊΠ²Π° "Ё" (ΠΊΠΎΠ΄ 1025 ΠΈ 1105) находится Π²Π½Π΅ основного Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° русского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ явно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° эти ΠΊΠΎΠ΄Ρ‹, ΠΈΠ½Π°Ρ‡Π΅ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ с Π±ΡƒΠΊΠ²ΠΎΠΉ "Ё" Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ.

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

ИспользованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² 1Π‘ 8.3

Начиная с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ стал доступСн ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом β€” рСгулярныС выраТСния. Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² строкС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ сочСтаСт Π² сСбС Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ РСгулярноСВыраТСниС.

Π¨Π°Π±Π»ΠΎΠ½ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ строки, состоящСй Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π±ΡƒΠΊΠ², выглядит достаточно просто. Нам Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ строка Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π±ΡƒΠΊΠ²Ρ‹, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Ρ‹ ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π±ΡƒΠΊΠ²ΠΎΠΉ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ мСтасимволы Π½Π°Ρ‡Π°Π»Π° ^ ΠΈ ΠΊΠΎΠ½Ρ†Π° строки $, Π° Ρ‚Π°ΠΊΠΆΠ΅ классы символов. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ шаблона для ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹: ^[А-Π―Π°-яЁё]+$.

ИспользованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ написания Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ². Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сводится ΠΊ созданию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, компиляции шаблона ΠΈ Π²Ρ‹Π·ΠΎΠ²Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° БоотвСтствуСт. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ ΠΈ понятным Π΄Π°ΠΆΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… спСциалистов. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΄Π²ΠΈΠΆΠΎΠΊ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‡Ρ‚ΠΎ обСспСчиваСт Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ.

πŸ’‘

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ смСшанного Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° (ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π° ΠΈ Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π°) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ шаблон ^[А-Π―Π°-яЁёA-Za-z]+$. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° иностранных ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π±Ρ€Π΅Π½Π΄ΠΎΠ²Ρ‹Π΅ названия.

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

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ

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

Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Ρ‹ тСсты Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ ΠΈΠ· 100 000 строк Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ с использованиСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° РСгулярноСВыраТСниС ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ классичСский Ρ†ΠΈΠΊΠ» ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΈΠΌΠ². ОсобСнно Π·Π°ΠΌΠ΅Ρ‚Π½Π° Ρ€Π°Π·Π½ΠΈΡ†Π° Π½Π° Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строках, Π³Π΄Π΅ Ρ†ΠΈΠΊΠ» Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ "Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ" ΠΈΠ·-Π·Π° большого количСства ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ВрСмя Π½Π° 1000 строк (мс) Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ
Π¦ΠΈΠΊΠ» + Π‘ΠΈΠΌΠ² 120-150 Низкая БрСдняя
РСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 15-25 Высокая Высокая
Новый Π’ΠΈΠΏ (Π’ΠΎΠ»ΡŒΠΊΠΎΠ‘ΡƒΠΊΠ²Ρ‹) 10-20 Максимальная Низкая

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

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° с использованиСм Ρ‚ΠΈΠΏΠ° значСния "Π’ΠΎΠ»ΡŒΠΊΠΎΠ‘ΡƒΠΊΠ²Ρ‹"

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

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ достаточно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° ОписаниСВипа, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π² конструктор строку "Π’ΠΎΠ»ΡŒΠΊΠΎΠ‘ΡƒΠΊΠ²Ρ‹". Π—Π°Ρ‚Π΅ΠΌ этот Ρ‚ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ значСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ установкС значСния Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с строгим Ρ‚ΠΈΠΏΠΎΠΌ. Если строка содСрТит нСдопустимыС символы, систСма сгСнСрируСт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚ лоТь, Π² зависимости ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π·ΠΎΠ²Π°.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ΠΈΠΏ значСния "Π’ΠΎΠ»ΡŒΠΊΠΎΠ‘ΡƒΠΊΠ²Ρ‹" ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² зависимости ΠΎΡ‚ настроСк систСмы. Часто трСбуСтся ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ trimming (ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΏΠΎ краям) строки ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ, ΠΈΠ½Π°Ρ‡Π΅ строка "Иванов " ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½Π°.

ИспользованиС встроСнных Ρ‚ΠΈΠΏΠΎΠ² β€” это ΠΏΡƒΡ‚ΡŒ ΠΊ чистому ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ. Если ваша Π·Π°Π΄Π°Ρ‡Π° сводится ΠΊ стандартной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ "Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Ρ‹", Π½Π΅Ρ‚ смысла ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ вСлосипСд. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° прСдоставляСт всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ инструмСнты "ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ слСдуСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций ΠΈ ΠΊΡ€Π°Π΅Π²Ρ‹Ρ… случаСв

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ строк Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… "ΠΊΡ€Π°Π΅Π²Ρ‹Ρ… случаях" (edge cases). ΠŸΡƒΡΡ‚Π°Ρ строка, строка, состоящая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², ΠΈΠ»ΠΈ строка с ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ символами ΠΌΠΎΠ³ΡƒΡ‚ повСсти сСбя нСпрСдсказуСмо Π² зависимости ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π°ΠΊΠΈΡ… ситуаций β€” ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ качСствСнного ΠΊΠΎΠ΄Π°.

НапримСр, рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ^[А-Π―Π°-я]+$ Π½Π΅ пропустит ΠΏΡƒΡΡ‚ΡƒΡŽ строку, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ²Π°Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ + Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа. Если пустая строка допустима Π² вашСй Π»ΠΎΠ³ΠΈΠΊΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ * ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° пустоту ΠΏΠ΅Ρ€Π΅Π΄ основным тСстом. Π­Ρ‚ΠΎ частая ошибка, приводящая ΠΊ Π»ΠΎΠΆΠ½Ρ‹ΠΌ срабатываниям Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ вопрос ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов. Π’ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π° с апострофами (O'Brien) ΠΈΠ»ΠΈ дСфисами (ΠœΠ°Ρ€ΠΈ-ΠšΡŽΡ€ΠΈ). ЖСсткая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° "Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Ρ‹" ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для иностранных ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ΠΎΠ². Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ бизнСс-трСбования, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ спСцсимволов.

Как ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ строку с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ?

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ словами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Иван Иванов"), ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΡ€ΠΎΠ±Π΅Π» Π² класс допустимых символов: ^[А-Π―Π°-яЁё\s]+$. Π‘ΠΈΠΌΠ²ΠΎΠ» \s ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ любой ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ.

ВсСгда тСстируйтС свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π½Π° Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΈ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅: Ρ†ΠΈΡ„Ρ€Ρ‹, Π·Π½Π°ΠΊΠΈ прСпинания, эмодзи, слуТСбныС символы. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ситуаций, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ°ΡŽΡ‚ Π² Π±Π°Π·Ρƒ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ошибки Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… ΠΈΠ»ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ….

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ рСализация ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

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

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

Ѐункция ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΠ’ΠΎΠ»ΡŒΠΊΠΎΠ‘ΡƒΠΊΠ²Ρ‹(ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΠ°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°)

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

РСгулярка = Новый РСгулярноСВыраТСниС("^[А-Π―Π°-яЁё]+$");

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ РСгулярка.БоотвСтствуСт(ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΠ°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°);

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π›ΠΎΠΆΡŒ;

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

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

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

β˜‘οΈ Π§Π΅ΠΊ-лист внСдрСния Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ

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

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

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

πŸ’‘

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ строки Π½Π° Π±ΡƒΠΊΠ²Ρ‹ Π² 1Π‘ 8.3+ являСтся использованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ° "Π’ΠΎΠ»ΡŒΠΊΠΎΠ‘ΡƒΠΊΠ²Ρ‹", вынСсСнных Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

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

МоТно Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ строку Π½Π° Π±ΡƒΠΊΠ²Ρ‹ Π±Π΅Π· использования рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ?

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

Как ΡƒΡ‡Π΅ΡΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ "Ё" ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ строки?

Π‘ΡƒΠΊΠ²Π° "Ё" ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ΄Ρ‹, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ основного Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° русского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°. ΠŸΡ€ΠΈ использовании рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ Ёё Π² шаблон, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ^[А-Π―Π°-яЁё]+$. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΊΠΎΠ΄Π°ΠΌΠΈ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ условия для ΠΊΠΎΠ΄ΠΎΠ² 1025 ΠΈ 1105.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° строки замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° выполняСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ количСству записСй, ΠΈ ΠΏΡ€ΠΈ этом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ рСгулярного выраТСния создаСтся Π·Π°Π½ΠΎΠ²ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. ВынСситС созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ†ΠΈΠΊΠ»Π° для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π»ΠΈ рСгулярныС выраТСния Π² 1Π‘ 8.2?

НСт, полноцСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° РСгулярноСВыраТСниС появилась Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3. Π’ вСрсии 8.2 придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ цикличСский ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ символов ΠΈΠ»ΠΈ внСшниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Как Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² строкС ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Π½Π° Π±ΡƒΠΊΠ²Ρ‹?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ мСтасимвол \s ΠΈΠ»ΠΈ явно ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π» Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках шаблона рСгулярного выраТСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ шаблона: ^[А-Π―Π°-яЁё\s]+$ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ строкам ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ словами.