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

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

Π‘Ρ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΊΠ°ΠΊ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ 1Π‘, Ρ‚Π°ΠΊ ΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ программистам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ знания. ВсС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (8.3.20+), Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ…. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ со старыми конфигурациями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1Π‘:Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»Π΅ΠΉ 10.3), ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² синтакс-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ΅.

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

1. Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска: Найти() ΠΈ БтрНайти()

Π‘Π°ΠΌΡ‹Π΅ простыС ΠΈ быстрыС способы поиска Π² строках β€” встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Найти() ΠΈ БтрНайти(). Они подходят для 80% Π·Π°Π΄Π°Ρ‡, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ подстроки ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ.

Ѐункция Найти(Π˜ΡΠΊΠΎΠΌΠ°ΡΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ°, ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡ) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния подстроки (начиная с 1) ΠΈΠ»ΠΈ 0, Ссли подстрока Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: рСгистрозависимая! Π’ΠΎ Π΅ΡΡ‚ΡŒ "ΠŸΡ€ΠΈΠ²Π΅Ρ‚" ΠΈ "ΠΏΡ€ΠΈΠ²Π΅Ρ‚" для Π½Π΅Ρ‘ β€” Ρ€Π°Π·Π½Ρ‹Π΅ строки. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = "1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 β€” Π»ΡƒΡ‡ΡˆΠ°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ";

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = БтрНайти(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, "8.3"); // Π’Π΅Ρ€Π½Ρ‘Ρ‚ 15

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

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

Π˜Π½Π°Ρ‡Π΅

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

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

Ѐункция БтрНайти(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ°) β€” Π°Π½Π°Π»ΠΎΠ³ Найти(), Π½ΠΎ с двумя ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ отличиями:

  • πŸ” ΠΠ΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π° ΠΊ рСгистру β€” ΠΈΡ‰Π΅Ρ‚ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ…/ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π±ΡƒΠΊΠ².
  • πŸ“ Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа подстроки (ΠΊΠ°ΠΊ ΠΈ Найти()), Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π΅Π΅ с ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ.
  • πŸš€ БыстрСС Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… строках (Π±ΠΎΠ»Π΅Π΅ 1000 символов).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования БтрНайти() для поиска нСзависимо ΠΎΡ‚ рСгистра:

ВСкст = "ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΠΏΠ»Π°Ρ‚ΠΈΠ» счёт №АБВ-123 ΠΎΡ‚ 15.05.2026";

Если БтрНайти(ВСкст, "Π°Π±Π²-123") > 0 Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("НомСр счёта Π½Π°ΠΉΠ΄Π΅Π½!");

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ОбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ 0, Ссли подстрока Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°. НС ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ с НСопрСдСлён ΠΈΠ»ΠΈ Null β€” это Ρ€Π°Π·Π½Ρ‹Π΅ состояния! Π’ ΠΊΠΎΠ΄Π΅ всСгда провСряйтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° > 0, Π° Π½Π΅ Π½Π° НС НСопрСдСлён().

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ использованиСм Найти()/БтрНайти()

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

2. Поиск с ΠΊΠΎΠ½Ρ†Π° строки: НайтиБ ΠΊΠΎΠ½Ρ†Π°()

Когда Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ послСднСС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ подстроки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ послСдний Π½ΠΎΠΌΠ΅Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ· Π»ΠΎΠ³Π°), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ НайтиБконца(). Она Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Найти(), Π½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ поиск с ΠΊΠΎΠ½Ρ†Π° строки.

Бинтаксис:

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = НайтиБконца(Π˜ΡΠΊΠΎΠΌΠ°ΡΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ°, ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠ”Π»ΡΠŸΠΎΠΈΡΠΊΠ°Π‘ΠΊΠΎΠ½Ρ†Π°);

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π½Π°ΠΉΠ΄Ρ‘ΠΌ послСдний символ "." Π² ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅:

ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ = "C:\Documents\ΠžΡ‚Ρ‡Ρ‘Ρ‚_Π·Π°_ΠΌΠ°ΠΉ.xlsx";

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠ’ΠΎΡ‡ΠΊΠΈ = НайтиБконца(ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ, ".");

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

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ = Π‘Ρ€Π΅Π΄(ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ, ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠ’ΠΎΡ‡ΠΊΠΈ + 1);

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°: " + Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ "xlsx"

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

Π’Π°ΠΆΠ½Ρ‹Π΅ Π½ΡŽΠ°Π½ΡΡ‹:

  • πŸ”„ Ѐункция ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ рСгистр (ΠΊΠ°ΠΊ Найти()).
  • πŸ“ ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠ”Π»ΡΠŸΠΎΠΈΡΠΊΠ°Π‘ΠΊΠΎΠ½Ρ†Π° β€” ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, поиск ΠΈΠ΄Ρ‘Ρ‚ с ΠΊΠΎΠ½Ρ†Π° всСй строки.
  • πŸ”™ Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа подстроки, считая с Π½Π°Ρ‡Π°Π»Π° строки (Π½Π΅ с ΠΊΠΎΠ½Ρ†Π°!).
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π² строкС нСсколько Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ подстроки, НайтиБконца() Π²Π΅Ρ€Π½Ρ‘Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ послСднСго ΠΈΠ· Π½ΠΈΡ…. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ прСдпослСднСС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅, придётся ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π›Π΅Π²() ΠΈΠ»ΠΈ Π‘Ρ€Π΅Π΄().

3. Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ подстрок ΠΏΠΎ позициям: Π›Π΅Π²(), ΠŸΡ€Π°Π²(), Π‘Ρ€Π΅Π΄()

Когда Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° искомого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, послС использования Найти()), для извлСчСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π›Π΅Π²(), ΠŸΡ€Π°Π²() ΠΈ Π‘Ρ€Π΅Π΄().

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Ѐункция Бинтаксис ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
Π›Π΅Π²() Π›Π΅Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²) Π›Π΅Π²("1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅", 3) "1Π‘:"
ΠŸΡ€Π°Π²() ΠŸΡ€Π°Π²(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²) ΠŸΡ€Π°Π²("Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€ β„–123", 3) "123"
Π‘Ρ€Π΅Π΄() Π‘Ρ€Π΅Π΄(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡ, Π”Π»ΠΈΠ½Π°) Π‘Ρ€Π΅Π΄("abcdef", 2, 3) "bcd"

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΈΠ·Π²Π»Π΅Ρ‡Ρ‘ΠΌ Π½ΠΎΠΌΠ΅Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ· строки "Π—Π°ΠΊΠ°Π· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° β„–Π’Π’-4567 ΠΎΡ‚ 01.06.2026":

ВСкст = "Π—Π°ΠΊΠ°Π· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° β„–Π’Π’-4567 ΠΎΡ‚ 01.06.2026";

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠΠΎΠΌΠ΅Ρ€Π° = БтрНайти(ВСкст, "β„–") + 1; // ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ°Π΅ΠΌ символ "β„–"

НомСрДокумСнта = Π‘Ρ€Π΅Π΄(ВСкст, ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠΠΎΠΌΠ΅Ρ€Π°, 6); // Π‘Π΅Ρ€Ρ‘ΠΌ 6 символов послС "β„–"

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(НомСрДокумСнта); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ "Π’Π’-456"

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π›Π΅Π²()/ΠŸΡ€Π°Π²()/Π‘Ρ€Π΅Π΄() Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ строки. Если Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠŸΡ€Π°Π²("123", 5), 1Π‘ Π²Π΅Ρ€Π½Ρ‘Ρ‚ всю строку Π±Π΅Π· ошибки, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ логичСским Π±Π°Π³Π°ΠΌ. ВсСгда провСряйтС Π΄Π»ΠΈΠ½Ρƒ строки ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ!

Если Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) >= ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡ + Π”Π»ΠΈΠ½Π° Π’ΠΎΠ³Π΄Π° ...-->

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

Для слоТных Π·Π°Π΄Π°Ρ‡ β€” ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ email, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ², чисСл ΠΈΠ· тСкста, валидация Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ рСгулярныС выраТСния. Π’ 1Π‘ ΠΎΠ½ΠΈ доступны Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ РСгулярноСВыраТСниС (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘Ρ‚Ρ€ΠΎΠΊΠ°ΠŸΠΎΠΈΡΠΊΠ° Π² Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅).

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис:

Π Π’ = Новый РСгулярноСВыраТСниС("шаблон");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π Π’.Найти(Π˜ΡΡ…ΠΎΠ΄Π½Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°);

Если Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π’ΠΎΠ³Π΄Π°

НайдСнныйВСкст = Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.НайдСнноСЗначСниС;

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ популярных шаблонов:

  • πŸ“§ Поиск email: "\b[\w.-]+@[\w.-]+\.\w{2,4}\b"
  • πŸ“ž Поиск Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²: "\+\d{1,3}\s?\(?\d{3}\)?\s?\d{3}-?\d{2}-?\d{2}"
  • πŸ”’ Поиск чисСл: "\d+" (всС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ†ΠΈΡ„Ρ€)
  • πŸ’° Поиск сумм: "\d+\s?\d{2}\s?Ρ€ΡƒΠ±" (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "100 50 Ρ€ΡƒΠ±")

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΈΠ·Π²Π»Π΅Ρ‡Ρ‘ΠΌ всС email-адрСса ΠΈΠ· тСкста Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

ВСкст = "ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹: support@firm.ru, sales@partner.org. Π’Π΅Π»Π΅Ρ„ΠΎΠ½: +7(495)123-45-67";

Π Π’ = Новый РСгулярноСВыраТСниС("\b[\w.-]+@[\w.-]+\.\w{2,4}\b");

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ = Π Π’.НайтиВсС(ВСкст);

Для КаТдого НайдСнноС Из Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(НайдСнноС.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ "support@firm.ru", Π·Π°Ρ‚Π΅ΠΌ "sales@partner.org"

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: РСгулярныС выраТСния Π² 1Π‘ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… для простых Π·Π°Π΄Π°Ρ‡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, поиска ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа) β€” это сильно Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΡ‘ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с рСгулярными выраТСниями?

1. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ шаблон ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· (Π΄ΠΎ Ρ†ΠΈΠΊΠ»Π°) с Ρ„Π»Π°Π³ΠΎΠΌ РСгулярноСВыраТСниС.ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ().

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ НайтиВсС() вмСсто ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Найти() Π² Ρ†ΠΈΠΊΠ»Π΅.

3. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ поиска с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π‘Ρ€Π΅Π΄(), Ссли извСстно ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ мСстополоТСниС искомого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°.

5. Поиск с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ маски: Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ строку ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ с подстановочными символами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€ β„–*"), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ() с маской ΠΈΠ»ΠΈ Подобно() (Π² SQL-запросах). Π’ 1Π‘ для этого Π΅ΡΡ‚ΡŒ символы:

  • ? β€” любой ΠΎΠ΄ΠΈΠ½ символ;
  • * β€” любая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡƒΡΡ‚ΡƒΡŽ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π½Π°ΠΉΠ΄Ρ‘ΠΌ всС строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с "Артикул:" ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° 4 Ρ†ΠΈΡ„Ρ€Ρ‹:

Π¨Π°Π±Π»ΠΎΠ½ = "Артикул:*????"; // "Артикул:" + Π»ΡŽΠ±Ρ‹Π΅ символы + Ρ€ΠΎΠ²Π½ΠΎ 4 символа

Если Π‘Ρ‚Ρ€Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ(ВСкст, Π¨Π°Π±Π»ΠΎΠ½, Π›ΠΎΠΆΡŒ) Π’ΠΎΠ³Π΄Π° // Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ "Π›ΠΎΠΆΡŒ" = ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ маску

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π‘Ρ‚Ρ€ΠΎΠΊΠ° соотвСтствуСт ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ!");

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

Для SQL-запросов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΠžΠ”ΠžΠ‘ΠΠž:

Запрос = Новый Запрос;

Запрос.ВСкст =

"ВЫБРАВЬ

| НомСнклатура.НаимСнованиС КАК НаимСнованиС

|Π˜Π—

| Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК НомСнклатура

|Π“Π”Π•

| НомСнклатура.Артикул ΠŸΠžΠ”ΠžΠ‘ΠΠž 'АРВ-%'"; // НачинаСтся с "АРВ-"

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • 🚫 Π’ Π‘Ρ‚Ρ€Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ() маска Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ = Π›ΠΎΠΆΡŒ.
  • πŸ” Π’ SQL ΠŸΠžΠ”ΠžΠ‘ΠΠž рСгистрозависим (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ БтрНайти()).
  • ⚠️ Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ ? ΠΈ * Π² маскС Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ссли ΠΎΠ½ΠΈ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² искомом тСкстС.

6. Поиск Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… тСкстах: ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими строками (Π±ΠΎΠ»Π΅Π΅ 10 000 символов) ΠΈΠ»ΠΈ массовой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, парсинг Π»ΠΎΠ³ΠΎΠ²) стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 1Π‘ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ поиск:

Бпособ 1. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ строки

Если Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ подстроки, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, запятыС Π² CSV), Ρ€Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ строку Π½Π° массив с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ():

ВСкст = "Иванов;ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²;Π‘ΠΈΠ΄ΠΎΡ€ΠΎΠ²;ΠšΡƒΠ·Π½Π΅Ρ†ΠΎΠ²";

МассивЀамилий = Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ(ВСкст, ";");

Если Найти(МассивЀамилий, "Π‘ΠΈΠ΄ΠΎΡ€ΠΎΠ²") > 0 Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ѐамилия Π½Π°ΠΉΠ΄Π΅Π½Π°!");

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

Бпособ 2. Поиск Π² Ρ†ΠΈΠΊΠ»Π΅ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ

Для ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… тСкстов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π»ΠΎΠ³ΠΎΠ² сСрвСра) ΠΈΡ‰ΠΈΡ‚Π΅ подстроку ΠΏΠΎ частям:

Π§Π°ΡΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ = "";

Для Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ = 1 По Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉΠ’Π΅ΠΊΡΡ‚) / 1000 Π¦ΠΈΠΊΠ»

Π§Π°ΡΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ = Π‘Ρ€Π΅Π΄(Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉΠ’Π΅ΠΊΡΡ‚, (Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ - 1) * 1000 + 1, 1000);

Если БтрНайти(Π§Π°ΡΡ‚ΡŒΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ, "ΠžΠ¨Π˜Π‘ΠšΠ") > 0 Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка Π½Π°ΠΉΠ΄Π΅Π½Π° Π² части " + Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ);

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

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

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

Бпособ 3. ИспользованиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Если строка слишком большая для памяти (Π±ΠΎΠ»Π΅Π΅ 100 ΠœΠ‘), сохранитС Π΅Ρ‘ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ΠΈΡ‰ΠΈΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ВСкстовыйДокумСнт:

ВСкстовыйЀайл = Новый ВСкстовыйДокумСнт;

ВСкстовыйЀайл.ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ(ИмяЀайла);

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π€Π°ΠΉΠ»Π° = ВСкстовыйЀайл.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ’Π΅ΠΊΡΡ‚();

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = БтрНайти(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π€Π°ΠΉΠ»Π°, "Π˜ΡΠΊΠΎΠΌΠ°ΡΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ°");

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ 500 ΠœΠ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ (ЧтСниСВСкста), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3.20+ для этого Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠŸΠΎΡ‚ΠΎΠΊΠ§Ρ‚Π΅Π½ΠΈΡ.
πŸ’‘

Для ускорСния поиска Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… тСкстах всСгда Ρ€Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π° части: Π»ΠΈΠ±ΠΎ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ строки Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ. Π­Ρ‚ΠΎ сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ускоряСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² 5-10 Ρ€Π°Π·.

7. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ кСйсы

Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ 1Π‘, ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ способы ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

КСйс 1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности ИНН

НуТно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ строка содСрТит Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ ИНН (10 ΠΈΠ»ΠΈ 12 Ρ†ΠΈΡ„Ρ€). РСшСниС:

Ѐункция ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΠ˜ΠΠ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜ΠΠ)

Если Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜ΠΠ) = 10 И Π‘Ρ‚Ρ€Π‘ΠΎΠΊΡ€(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜ΠΠ) Подобно "##########" Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π˜ΡΡ‚ΠΈΠ½Π°;

Π˜Π½Π°Ρ‡Π΅Π•ΡΠ»ΠΈ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜ΠΠ) = 12 И Π‘Ρ‚Ρ€Π‘ΠΎΠΊΡ€(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π˜ΠΠ) Подобно "############" Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π˜ΡΡ‚ΠΈΠ½Π°;

Π˜Π½Π°Ρ‡Π΅

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

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

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

КСйс 2. Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСх ссылок ΠΈΠ· HTML

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ·Π²Π»Π΅Ρ‡Ρ‘ΠΌ всС URL ΠΈΠ· HTML-ΠΊΠΎΠ΄Π°:

HTML = "Бсылка 1Бсылка 2";

Π Π’ = Новый РСгулярноСВыраТСниС("href=['""]?([^'""]+)['""]?", РСгулярноСВыраТСниС.ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΉ);

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ = Π Π’.НайтиВсС(HTML);

Для КаТдого Бсылка Из Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π¦ΠΈΠΊΠ»

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Бсылка.Π“Ρ€ΡƒΠΏΠΏΠ°(1)); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ "https://site.ru/page1", Π·Π°Ρ‚Π΅ΠΌ "https://site.ru/page2"

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

КСйс 3. Поиск Π΄ΡƒΠ±Π»Π΅ΠΉ Π² спискС

Найдём ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты Π² строкС Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ:

Бписок = "яблоко,Π±Π°Π½Π°Π½,Π³Ρ€ΡƒΡˆΠ°,яблоко,апСльсин";

Массив = Π‘Ρ‚Ρ€Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ(Бписок, ",");

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Массив Π¦ΠΈΠΊΠ»

Если Колво(Найти(Массив, Π­Π»Π΅ΠΌΠ΅Π½Ρ‚)) > 1 Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π”ΡƒΠ±Π»ΡŒ Π½Π°ΠΉΠ΄Π΅Π½: " + Π­Π»Π΅ΠΌΠ΅Π½Ρ‚); // Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ "яблоко"

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

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

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

FAQ: ЧастыС вопросы ΠΏΠΎ поиску Π² строках 1Π‘

Как Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ послСднСго вхоТдСния подстроки?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ НайтиБконца(). ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = НайтиБконца("Π°Π±Π²Π³Π΄-Π°Π±Π²Π³Π΄-Π°Π±Π²Π³Π΄", "Π°Π±Π²"); // Π’Π΅Ρ€Π½Ρ‘Ρ‚ 11 (позиция послСднСго "Π°Π±Π²")
ΠŸΠΎΡ‡Π΅ΠΌΡƒ БтрНайти() Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ подстроку, хотя ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ?

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:

  1. РСгистр символов (функция Π½Π΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π° ΠΊ рСгистру, Π½ΠΎ Π² строкС ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Π΅ символы).
  2. НаличиС ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… символов (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ() для очистки).
  3. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ тСкста (Ссли строка ΠΏΡ€ΠΈΡˆΠ»Π° ΠΈΠ· внСшнСго источника).

Для диагностики Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ строку Π² сообщСниС с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°() ΠΈ КодБимвола().

Как ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ тСкст ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅ΠΆΠ΄Ρƒ "[[" ΠΈ "]]")?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Найти() ΠΈ Π‘Ρ€Π΅Π΄():

ВСкст = "ВСкст [[ваТная информация]] ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅";

Начало = Найти(ВСкст, "[[") + 2;

ΠšΠΎΠ½Π΅Ρ† = Найти(ВСкст, "]]", Начало);

Если ΠšΠΎΠ½Π΅Ρ† > Начало Π’ΠΎΠ³Π΄Π°

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Π‘Ρ€Π΅Π΄(ВСкст, Начало, ΠšΠΎΠ½Π΅Ρ† - Начало);

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚); // "ваТная информация"

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

МоТно Π»ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ транслитСрации (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΉΡ‚ΠΈ "ivanov" Π² строкС "Иванов")?

Π’ стандартной поставкС 1Π‘ Π½Π΅Ρ‚ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для этого. РСшСния:

  1. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ транслитСрации ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π΅ строки Π² ΠΎΠ΄Π½ΠΎΠΌ рСгистрС.
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшнюю ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1C:Translit).
  3. Для SQL-запросов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠŸΠžΠ”ΠžΠ‘ΠΠž с Ρ€ΡƒΡ‡Π½ΠΎΠΉ подстановкой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².
Как Π½Π°ΠΉΡ‚ΠΈ всС вхоТдСния подстроки ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ…?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ():

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚ = "1Π‘ 8.3, 1Π‘ 8.2, 1Π‘ 8.1";

НовыйВСкст = Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚, "1Π‘", "1C:Enterprise");

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(НовыйВСкст); // "1C:Enterprise 8.3, 1C:Enterprise 8.2, 1C:Enterprise 8.1"

Для слоТных Π·Π°ΠΌΠ΅Π½ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ контСкста) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ рСгулярныС выраТСния:

Π Π’ = Новый РСгулярноСВыраТСниС("1Π‘\s(\d\.\d)");

НовыйВСкст = Π Π’.Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ’Π΅ΠΊΡΡ‚, "1C:Enterprise $1");