поиск в строке по частичному совпадению

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

поиск в строке по частичному совпадению

Сообщение Espada » Ср сен 22, 2021 11:30

Доброго дня. Такой вопрос, существует ли возможность частичного поиска в строке? ф-я InStr, работает только если полное совпадение. а у меня проблема, что в переменной строка из нескольких слов, и нужно что бы искало хотя бы по паре из них... спасибо.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Аватара пользователя
Espada
Местный житель
 
Сообщения: 318
Зарегистрирован: Вт май 07, 2013 17:32
Reputation point: 0

Re: поиск в строке по частичному совпадению

Сообщение Irina_ » Ср сен 22, 2021 12:38

Здравствуйте.
Instr – ф-ция нахождения подстроки.
Если в Вашем случае строка из нескольких слов, и нужен поиск одновременно по двум подстрокам, то используйте ф-цию 2 раза:
If ( Instr(str1,str) > 0 ) and ( Instr(str2,str) > 0 )
{
...
}
где str – исходная строка, str1 и str2 - две подстроки, наличие которых надо проверить.
Irina_
Местный житель
 
Сообщения: 504
Зарегистрирован: Вт июл 17, 2012 11:56
Откуда: Республика Беларусь, г.Могилев
Reputation point: 47

Re: поиск в строке по частичному совпадению

Сообщение Espada » Ср сен 22, 2021 12:43

Irina_ писал(а):где str – исходная строка, str1 и str2 - две подстроки, наличие которых надо проверить.

хмм, т.е. разделить строку, которую надо найти, на слова, записать их в переменные, и искать по ним... Идея интересная, буду пробовать, спасибо)
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Аватара пользователя
Espada
Местный житель
 
Сообщения: 318
Зарегистрирован: Вт май 07, 2013 17:32
Reputation point: 0

Re: поиск в строке по частичному совпадению

Сообщение KVS » Чт сен 30, 2021 10:50

Если нужно просто проверить наличие подстрок в строке (проверка строки по регулярному выражению), то может помочь:
Код: Выделить всё
Function VIPRegExpr (  ARegExpr  : String,  AInputStr : String) : Boolean; external 'WordLib.dll';


Код: Выделить всё
Function VIPRegExpr ('несколько\s*слов\s*через.*пробелы', 'несколько           слов   через еще строка        пробелы') = true

, где \s* от 0 до бесконечности количество пробелов, .* от нуля до бесконечности любых символов
KVS
 
Сообщения: 11
Зарегистрирован: Пн фев 03, 2020 11:38
Reputation point: 0


Вернуться в Программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1