Страница 1 из 1

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

Добавлено: 22 сен 2021, 10:30
Espada
Доброго дня. Такой вопрос, существует ли возможность частичного поиска в строке? ф-я InStr, работает только если полное совпадение. а у меня проблема, что в переменной строка из нескольких слов, и нужно что бы искало хотя бы по паре из них... спасибо.

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

Добавлено: 22 сен 2021, 11:38
Irina_
Здравствуйте.
Instr – ф-ция нахождения подстроки.
Если в Вашем случае строка из нескольких слов, и нужен поиск одновременно по двум подстрокам, то используйте ф-цию 2 раза:
If ( Instr(str1,str) > 0 ) and ( Instr(str2,str) > 0 )
{
...
}
где str – исходная строка, str1 и str2 - две подстроки, наличие которых надо проверить.

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

Добавлено: 22 сен 2021, 11:43
Espada
Irina_ писал(а):где str – исходная строка, str1 и str2 - две подстроки, наличие которых надо проверить.
хмм, т.е. разделить строку, которую надо найти, на слова, записать их в переменные, и искать по ним... Идея интересная, буду пробовать, спасибо)

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

Добавлено: 30 сен 2021, 09:50
KVS
Если нужно просто проверить наличие подстрок в строке (проверка строки по регулярному выражению), то может помочь:

Код: Выделить всё

Function VIPRegExpr (  ARegExpr  : String,  AInputStr : String) : Boolean; external 'WordLib.dll';

Код: Выделить всё

Function VIPRegExpr ('несколько\s*слов\s*через.*пробелы', 'несколько           слов   через еще строка        пробелы') = true 
, где \s* от 0 до бесконечности количество пробелов, .* от нуля до бесконечности любых символов