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

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

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

Базовая функция поиска Π² языкС 1Π‘

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

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

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅:

ВСкст = "Бкладской ΡƒΡ‡Π΅Ρ‚ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²";

ИскомоСБлово = "ΡƒΡ‡Π΅Ρ‚";

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = Найти(ВСкст, ИскомоСБлово);

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

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π‘Π»ΠΎΠ²ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ: " + ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ);

Π˜Π½Π°Ρ‡Π΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π‘Π»ΠΎΠ²ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ");

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

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

πŸ’‘

ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ поиска всСгда ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΎΠ±Π΅ строки ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ рСгистру (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ), Ссли рСгистр символов Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния для вашСй Π·Π°Π΄Π°Ρ‡ΠΈ. Π­Ρ‚ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ ΠΎΡ‚ ошибок поиска ΠΈΠ·-Π·Π° Ρ€Π°Π·Π½Ρ‹Ρ… Π±ΡƒΠΊΠ².

Поиск с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра ΠΈ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½Ρ‹Ρ… настроСк

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

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ рСгистронСзависимого поиска:

Ѐункция НайтиБСзРСгистра(Π“Π΄Π΅Π˜ΡΠΊΠ°Ρ‚ΡŒ, Π§Ρ‚ΠΎΠ˜ΡΠΊΠ°Ρ‚ΡŒ)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Найти(НРСг(Π“Π΄Π΅Π˜ΡΠΊΠ°Ρ‚ΡŒ), НРСг(Π§Ρ‚ΠΎΠ˜ΡΠΊΠ°Ρ‚ΡŒ));

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

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ поиск слова "Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€" ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, Π΄Π°ΠΆΠ΅ Ссли Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ½ΠΎ записано ΠΊΠ°ΠΊ "Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€" ΠΈΠ»ΠΈ "Π”ΠžΠ“ΠžΠ’ΠžΠ ". Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π³Π΄Π΅ соблюдСниС Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ стиля написания часто Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ΡΡ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ строк ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ ΠΈΠ»ΠΈ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌΡƒ рСгистру создаСт Π½ΠΎΠ²Ρ‹Π΅ строковыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² памяти. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… массивов Π΄Π°Π½Π½Ρ‹Ρ… (ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ строк) Π² Ρ†ΠΈΠΊΠ»Π΅ это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сборщик мусора. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ БтрНайти для слоТных Π·Π°Π΄Π°Ρ‡

Для Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… сцСнариСв ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ БтрНайти(). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ½Π° позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ поиска (с Π½Π°Ρ‡Π°Π»Π° ΠΈΠ»ΠΈ с ΠΊΠΎΠ½Ρ†Π° строки) ΠΈ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом Π°Π½Π°Π»ΠΈΠ·Π° тСкста.

Ѐункция БтрНайти особСнно ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ»ΠΈ послСднСС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ подстроки. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ поиск с ΠΊΠΎΠ½Ρ†Π° строки, Ρ‡Ρ‚ΠΎ часто трСбуСтся ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ ΠΈΠ»ΠΈ слоТных ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ².

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

  • πŸ” Искомая строка β€” тСкст, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ производится поиск.
  • πŸ“Œ ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° β€” Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ.
  • πŸš€ НаправлСниС β€” опрСдСляСт, ΠΈΡΠΊΠ°Ρ‚ΡŒ с Π½Π°Ρ‡Π°Π»Π° (ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠŸΠΎΠΈΡΠΊΠ°.Π‘Π½Π°Ρ‡Π°Π»Π°) ΠΈΠ»ΠΈ с ΠΊΠΎΠ½Ρ†Π° (ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠŸΠΎΠΈΡΠΊΠ°.Π‘ΠšΠΎΠ½Ρ†Π°).
  • πŸ“ ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ позиция β€” символ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ начинаСтся поиск (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 1).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ поиска послСднСго вхоТдСния раздСлитСля Π² ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ:

ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ = "C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\ΠžΡ‚Ρ‡Π΅Ρ‚Ρ‹\Π“ΠΎΠ΄ΠΎΠ²ΠΎΠΉ_ΠΎΡ‚Ρ‡Π΅Ρ‚.xlsx";

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠŸΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎΠ‘Π»ΡΡˆΠ° = БтрНайти(ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ, "\", ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠŸΠΎΠΈΡΠΊΠ°.Π‘ΠšΠΎΠ½Ρ†Π°);

ИмяЀайла = Π‘Ρ€Π΅Π΄(ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ, ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠŸΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎΠ‘Π»ΡΡˆΠ° + 1);

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

Поиск слова Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ строк ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частях

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Π° Π½Π΅ просто Π½Π°ΠΉΡ‚ΠΈ слово Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ тСкста Π² ΠΈΡ… свойствах. Π’ 1Π‘ это Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° запросов ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ списками Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивным способом являСтся использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠŸΠžΠ”ΠžΠ‘ΠΠž Π² запросах ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π’Π«Π ΠΠ—Π˜Π’Π¬ для привСдСния Ρ‚ΠΈΠΏΠΎΠ². Однако, Ссли Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ с условиСм.

Рассмотрим сравнСниС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž Π² запросС Высокая (Π½Π° сторонС Π‘Π£Π‘Π”) БрСдняя Низкая
Π¦ΠΈΠΊΠ» с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Найти() Низкая (Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅/сСрвСрС) Высокая БрСдняя
ИндСкс полнотСкстового поиска ΠžΡ‡Π΅Π½ΡŒ высокая Максимальная Высокая

Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ всСгда ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ запроса ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π“Π”Π• ПолС ΠŸΠžΠ”ΠžΠ‘ΠΠž "%слово%". Π­Ρ‚ΠΎ сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сСрвСр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ объСм ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

πŸ’‘

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ запроса ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… всСгда эффСктивнСС, Ρ‡Π΅ΠΌ программная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ массивов, особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π Π°Π±ΠΎΡ‚Π° с рСгулярными выраТСниями Π² 1Π‘

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

ИспользованиС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ Π² случаях, ΠΊΠΎΠ³Π΄Π° искомоС слово ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ контСкстС. НапримСр, поиск всСх слов, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° "Акт", Π½ΠΎ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° "ция".

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования рСгулярного выраТСния для поиска слов ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹:

ВСкст = "ΠšΠΎΡ‚ сидит Π½Π° ΠΊΠΎΠ²Ρ€Π΅";

Π¨Π°Π±Π»ΠΎΠ½ = "\b\w{3}\b"; // Поиск слов ΠΈΠ· 3 Π±ΡƒΠΊΠ²

РСгулярка = Новый РСгулярноСВыраТСниС(Π¨Π°Π±Π»ΠΎΠ½);

БовпадСния = РСгулярка.БовпадСния(ВСкст);

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Из БовпадСния Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("НайдСно слово: " + Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅.Π“Ρ€ΡƒΠΏΠΏΡ‹[0].Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: РСгулярныС выраТСния ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ тысячи Ρ€Π°Π·, Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции шаблона ΠΈΠ»ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° рСгулярного выраТСния.

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

Бписок часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… мСтасимволов

\b β€” Π³Ρ€Π°Π½ΠΈΡ†Π° слова\n\d β€” любая Ρ†ΠΈΡ„Ρ€Π°\n\w β€” любая Π±ΡƒΠΊΠ²Π° ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€Π°\n^ β€” Π½Π°Ρ‡Π°Π»ΠΎ строки\n$ β€” ΠΊΠΎΠ½Π΅Ρ† строки

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ поискС

Π’ высоконагруТСнных систСмах ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ поиска ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΡƒΠ·ΠΊΠΈΠΌ мСстом. БущСствуСт нСсколько стратСгий ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ точности Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ β€” минимизация количСства Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ². Если Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ слово Π² мноТСствС строк, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ само искомоС слово Π½Π΅ пСрСсоздаСтся ΠΈ Π½Π΅ прСобразуСтся лишними функциями Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

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

Π’Ρ€Π΅Ρ‚ΡŒΡ рСкомСндация касаСтся Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими тСкстовыми полями. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ поиска подстрок Π² полях Ρ‚ΠΈΠΏΠ° ДлинноСВСкст (Memo), Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’Π°ΠΊΠΈΠ΅ поля хранятся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ основной записи, ΠΈ ΠΈΡ… Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ замСдляСт Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ.

  • ⚑ ΠšΡΡˆΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ частых поисков Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ….
  • ⚑ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ полнотСкстовый поиск для Π°Π½Π°Π»ΠΈΠ·Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов нСструктурированного тСкста.
  • ⚑ Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк Π²Π½ΡƒΡ‚Ρ€ΠΈ условий ΠΎΡ‚Π±ΠΎΡ€Π° запросов.

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ поиска

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

ЧастыС ошибки ΠΈ способы ΠΈΡ… устранСния

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

Π’Π°ΠΊΠΆΠ΅ часто встрСчаСтся ошибка "лишнСго ΠΏΡ€ΠΎΠ±Π΅Π»Π°". ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти слово с ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ Π² ΠΊΠΎΠ½Ρ†Π΅, ΠΈ простой поиск Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚ совпадСния. РСшСниС этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ β€” использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΎΠΊΡ€Π›ΠŸ() для удалСния Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² слСва ΠΈ справа ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π°.

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

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

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

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ 1Π‘ ΠΈ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ поиска. Часто ошибка кроСтся Π² Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… символах пСрСноса строки (Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹.ПБ).

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

Как Π½Π°ΠΉΡ‚ΠΈ всС вхоТдСния слова Π² строкС, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅?

Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ». ПослС нахоТдСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Найти(), Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΈ запускайтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ поиск, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΠ°ΠΉΠ΄Π΅Π½Π½Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡ + Π”Π»ΠΈΠ½Π°Π˜ΡΠΊΠΎΠΌΠΎΠ³ΠΎΠ‘Π»ΠΎΠ²Π°. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠΉΡ‚Π΅ процСсс, ΠΏΠΎΠΊΠ° функция Π½Π΅ Π²Π΅Ρ€Π½Π΅Ρ‚ 0.

МоТно Π»ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ слово с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΉ (морфологичСский поиск)?

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌΠΈ функциями 1Π‘ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Для морфологичСского поиска (Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ слов "Π΄ΠΎΠΌ", "Π΄ΠΎΠΌΠ°", "Π΄ΠΎΠΌΡƒ" ΠΏΠΎ запросу "Π΄ΠΎΠΌ") трСбуСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ»ΠΈ использованиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² полнотСкстового поиска Π‘Π£Π‘Π”, Ссли ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€ΡƒΡΡΠΊΡƒΡŽ ΠΌΠΎΡ€Ρ„ΠΎΠ»ΠΎΠ³ΠΈΡŽ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ поиск Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с кирилличСскими Π±ΡƒΠΊΠ²Π°ΠΌΠΈ?

Π§Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ источника Π΄Π°Π½Π½Ρ‹Ρ…. Если тСкст ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΈΠ· Π²Π΅Π±Π° ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ строка ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΠ΅Ρ€Π΅Π΄ поиском. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Π΅Ρ‚Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ символы ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠ².

Как Π½Π°ΠΉΡ‚ΠΈ слово Π² Ρ„Π°ΠΉΠ»Π΅, Π½Π΅ загруТая Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ?

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ВСкстовыйДокумСнт ΠΈΠ»ΠΈ ЧтСниСВСкста. Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» построчно ΠΈΠ»ΠΈ нСбольшими порциями (Ρ‡Π°Π½ΠΊΠ°ΠΌΠΈ) ΠΈ примСняйтС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ поиска ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠΉ части. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

Π•ΡΡ‚ΡŒ Π»ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² скорости ΠΌΠ΅ΠΆΠ΄Ρƒ Найти() ΠΈ БтрНайти()?

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