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

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

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

Базовая функция поиска вхоТдСния

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

Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост: ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ пСрСдаСтся исходная строка, Π° Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ β€” искомая подстрока ΠΈΠ»ΠΈ символ. Π­Ρ‚ΠΎ частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° логичСских ошибок Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², пСрСходящих с Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

πŸ’‘

ВсСгда провСряйтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Найти Π½Π° равСнство Π½ΡƒΠ»ΡŽ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… вычислСниях.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ сцСнарии. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π² Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρ‹ для раздСлСния строки Π½Π° части.

Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = "Π’ΠΎΠ²Π°Ρ€ А-123";

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠŸΡ€ΠΎΠ±Π΅Π»Π° = Найти(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°, " ");

Если ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠŸΡ€ΠΎΠ±Π΅Π»Π° = 0 Π’ΠΎΠ³Π΄Π°

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

Π˜Π½Π°Ρ‡Π΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ: " + ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠŸΡ€ΠΎΠ±Π΅Π»Π°);

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

Ѐункция Найти Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π° ΠΊ рСгистру символов, Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… сравнСния (Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹). Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ поиск Π±ΡƒΠΊΠ²Ρ‹ "Π°" ΠΈ Π±ΡƒΠΊΠ²Ρ‹ "А" даст Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² строкС смСшанного рСгистра.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ поискС Π² строках, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· Π²Π½Π΅ΡˆΠ½ΠΈΡ… источников (Ρ„Π°ΠΉΠ»Ρ‹, Π²Π΅Π±-сСрвисы), ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ скрытыС символы пСрСноса строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ±ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ поиска.

Поиск с ΠΊΠΎΠ½Ρ†Π° строки ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ порядок

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Π° послСднСС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ символа. НапримСр, ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ ΠΈΠ»ΠΈ слоТных ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Π³Π΄Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ встрСчаСтся ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. Для этих Ρ†Π΅Π»Π΅ΠΉ Π² арсСналС 1Π‘ сущСствуСт функция НайтиН, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ НайтиН Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ стандартному поиску, Π½ΠΎ сканированиС строки начинаСтся с ΠΊΠΎΠ½Ρ†Π°. Π­Ρ‚ΠΎ позволяСт эффСктивно ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ послСдниС сСгмСнты иСрархичСских структур Π±Π΅Π· нСобходимости ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€ΠΎΡ‚Π° строки.

  • πŸ” Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ послСднСго вхоТдСния.
  • πŸ” Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0, Ссли символ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.
  • πŸ” Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π½Π° ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строках ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с прямым поиском.

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

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования для получСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π°:

ИмяЀайла = "C:\Docs\Report_v2.xml";

ΠŸΠΎΠ·Π’ΠΎΡ‡ΠΊΠΈ = НайтиН(ИмяЀайла, ".");

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

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ = Π‘Ρ€Π΅Π΄(ИмяЀайла, ΠŸΠΎΠ·Π’ΠΎΡ‡ΠΊΠΈ + 1);

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° пустоту ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы

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

Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Π˜ΡΡ‚ΠΈΠ½Π°, Ссли строка Π½Π΅ содСрТит символов ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Π° НСопрСдСлСно. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ситуациям Π² ΠΊΠΎΠ΄Π΅, особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

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

Как Π½Π°ΠΉΡ‚ΠΈ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ?

Для поиска символа Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ (") Π²Π½ΡƒΡ‚Ρ€ΠΈ строковой константы, Π΅Ρ‘ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π²ΠΎΠΈΡ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Найти("Он сказал ""ΠŸΡ€ΠΈΠ²Π΅Ρ‚""", """").

Π’Π°Π±Π»ΠΈΡ†Π° Π½ΠΈΠΆΠ΅ дСмонстрируСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ спСцсимволами:

Π’ΠΈΠΏ значСния Ѐункция ΠŸΡƒΡΡ‚Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°() Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Найти(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, "А")
НСопрСдСлСно Π˜ΡΡ‚ΠΈΠ½Π° 0
ΠŸΡƒΡΡ‚Π°Ρ строка ("") Π˜ΡΡ‚ΠΈΠ½Π° 0
ΠŸΡ€ΠΎΠ±Π΅Π» (" ") Π›ΠΎΠΆΡŒ 0
Π‘ΠΈΠΌΠ²ΠΎΠ» табуляции Π›ΠΎΠΆΡŒ 0

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

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

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

Для создания шаблона ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ПослС компиляции ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Поиск ΠΈΠ»ΠΈ Π˜Π·Π²Π»Π΅Ρ‡ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Бинтаксис рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² 1Π‘ соотвСтствуСт общСпринятому стандарту PCRE.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ поиска ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ†ΠΈΡ„Ρ€ Π² тСкстС:

РСгулярка = Новый РСгулярноСВыраТСниС("\d+");

ВСкст = "Π—Π°ΠΊΠ°Π· β„– 12345 ΠΎΡ‚ 01.01.2026";

Если РСгулярка.Поиск(ВСкст) Π’ΠΎΠ³Π΄Π°

НомСрЗаказа = РСгулярка.Π˜Π·Π²Π»Π΅Ρ‡ΡŒ(ВСкст)[0];

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

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ рСгулярныС выраТСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈΠ·-Π·Π° слоТности шаблона поиска.

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

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

Одним ΠΈΠ· ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π»ΠΈΠ½Ρ‹ строки ΠΈΠ»ΠΈ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π›Π΅Π² / ΠŸΡ€Π°Π² для отсСивания Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ нСподходящих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ запуском тяТСлого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² поиска, Ссли ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ строки ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ.

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

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ стандартной, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ конвСртация Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Поиск Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² строкС Unicode ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ нСпрСдсказуСмыС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

β˜‘οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ поиска Π² Ρ†ΠΈΠΊΠ»Π΅

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

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… устранСния

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° поиск Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ символ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΈΠ»ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… символах. НапримСр, символ ΠΏΡ€ΠΎΠ±Π΅Π»Π°, скопированный ΠΈΠ· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ (ΠΊΠΎΠ΄ 160), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ функция Найти с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ (ΠΊΠΎΠ΄ 32) Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚.

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

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

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

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ вывСсти ΠΊΠΎΠ΄ символа Ρ‡Π΅Ρ€Π΅Π· КодБимвола(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ) ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ Π½Π΅ Ρ‚ΠΎΡ‚ символ.

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

Как Π½Π°ΠΉΡ‚ΠΈ всС вхоТдСния символа Π² строкС?

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

ЧувствитСлСн Π»ΠΈ поиск ΠΊ рСгистру Π² 1Π‘?

Π”Π°, стандартная функция Найти Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π° ΠΊ рСгистру. Π‘ΠΈΠΌΠ²ΠΎΠ» "Π°" Π½Π΅ Ρ€Π°Π²Π΅Π½ символу "А". Если трСбуСтся рСгистронСзависимый поиск, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΠ±Π΅ строки ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ рСгистру с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ БтрНиТ.

МоТно Π»ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ символ Π² числС?

НСт, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΡΠΊΠ°Ρ‚ΡŒ символ Π² числС нСльзя. НСобходимо сначала ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ число Π² строку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠ°(), ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска.

Как Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ N-Π³ΠΎ вхоТдСния символа?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†ΠΈΠΊΠ» с счСтчиком. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΈΡ‰ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ символа + 1. Когда счСтчик совпадСний достигнСт N, тСкущая позиция Π±ΡƒΠ΄Π΅Ρ‚ искомым Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ.