Я пытаюсь увидеть, если строка содержит определенный текст и, если так сделать что-то, я использую in
оператора питона, но я понял, его слишком строги в основном у меня есть следующий кодPython не строгий поиск текста в строке
Обычно это возвращение будет True
dynamic = "v23434"
filename = "v23434.jpg"
if dynamic in filename: return True
однако, если у меня есть
dynamic = "v23434-"
filename = "v23434.jpg"
то она возвращает значение False, в связи с тире в конце dynamic
, так что мой вопрос в том, есть ли способ проверить, имеет ли строка имя файла строку dynamic
, но таким образом, что это не должно быть идеальным совпадением, достаточно нескольких символов.
EDIT
Несколькими символов, я имею в виду подстроку, состоящую из первых 3-х символов в динамике, так что если у меня есть
dynamic = "v23434-"
filename = "testingv23434.jpg"
, то он должен соответствовать, потому подстроки "v23"
находится внутри filename
Ну, как вы определяете «несколько символов»? Как вы определяете несовершенный матч? Вам нужны _first_ несколько (и сколько?) Символов 'dynamic', которые можно найти в' filename', или вы ищете _any_ подстроку 'dynamic', которая встречается в' filename'? Возможно, с минимальной длиной? Существуют алгоритмы для решения всех этих проблем, но вы должны быть конкретными в отношении ваших требований. –
См. [Этот] (http://stackoverflow.com/q/682367/566644) вопрос. –
вы можете использовать такие вещи, как Левенштейн расстояние – shenshei