Как найти все вхождения подстроки в строке, игнорируя некоторые символы в Python?Python

Программы на Python
Anonymous
Как найти все вхождения подстроки в строке, игнорируя некоторые символы в Python?

Сообщение Anonymous »

Я хотел бы найти все вхождения подстроки, игнорируя некоторые символы. Как это сделать на Python?
Пример:

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

long_string = 'this is a t`es"t. Does the test work?'
small_string = "test"
chars_to_ignore = ['"', '`']
print(find_occurrences(long_string, small_string))
должен вернуть [(10, 16), (27, 31)], поскольку мы хотим игнорировать наличие символов ` и ".
  • Код: Выделить всё

    (10, 16)
    — это начальный и конечный индекс t`es"t в long_string,
  • Код: Выделить всё

    (27, 31)
    — это начальный и конечный индекс теста в long_string.
Использование re.finditer не будет работать, поскольку оно не игнорирует наличие символов ` и ":

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

import re
long_string = 'this is a t`es"t. Does the test work?'
small_string = "test"
matches = []
[matches.append((m.start(), m.end())) for m in re.finditer(small_string, long_string)]
print(matches)
выводит [(27, 31)], который пропустил (10, 16).

Подробнее здесь: https://stackoverflow.com/questions/787 ... some-chara

Вернуться в «Python»