поиск в строке по частичному совпадению
Модераторы: m0p3e, edward_K, Модераторы
поиск в строке по частичному совпадению
Доброго дня. Такой вопрос, существует ли возможность частичного поиска в строке? ф-я InStr, работает только если полное совпадение. а у меня проблема, что в переменной строка из нескольких слов, и нужно что бы искало хотя бы по паре из них... спасибо.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
-
- Местный житель
- Сообщения: 554
- Зарегистрирован: 17 июл 2012, 11:56
- Откуда: Республика Беларусь, г.Могилев
Re: поиск в строке по частичному совпадению
Здравствуйте.
Instr – ф-ция нахождения подстроки.
Если в Вашем случае строка из нескольких слов, и нужен поиск одновременно по двум подстрокам, то используйте ф-цию 2 раза:
If ( Instr(str1,str) > 0 ) and ( Instr(str2,str) > 0 )
{
...
}
где str – исходная строка, str1 и str2 - две подстроки, наличие которых надо проверить.
Instr – ф-ция нахождения подстроки.
Если в Вашем случае строка из нескольких слов, и нужен поиск одновременно по двум подстрокам, то используйте ф-цию 2 раза:
If ( Instr(str1,str) > 0 ) and ( Instr(str2,str) > 0 )
{
...
}
где str – исходная строка, str1 и str2 - две подстроки, наличие которых надо проверить.
Re: поиск в строке по частичному совпадению
хмм, т.е. разделить строку, которую надо найти, на слова, записать их в переменные, и искать по ним... Идея интересная, буду пробовать, спасибо)Irina_ писал(а):где str – исходная строка, str1 и str2 - две подстроки, наличие которых надо проверить.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Re: поиск в строке по частичному совпадению
Если нужно просто проверить наличие подстрок в строке (проверка строки по регулярному выражению), то может помочь:
, где \s* от 0 до бесконечности количество пробелов, .* от нуля до бесконечности любых символов
Код: Выделить всё
Function VIPRegExpr ( ARegExpr : String, AInputStr : String) : Boolean; external 'WordLib.dll';
Код: Выделить всё
Function VIPRegExpr ('несколько\s*слов\s*через.*пробелы', 'несколько слов через еще строка пробелы') = true