Возможно, об этом уже спрашивали, но я не могу найти решение. Предположим, мой текст 'C:\\Windows\\system32\\cmd.exe /v /c hello cmd.exe'
, и я хочу найти и удалить все слова с регулярным выражением r'cmd.exe'
. Результат должен быть: '/v /c hello'
.
Вот что я пытался: во-первых, я пытался найти индексы границ слов, чтобы я мог их удалить. Но я получил индексы для точного регулярного выражения ... а не для всего подходящего слова.
In [41]: [(m.start(0), m.end(0)) for m in re.finditer(r'\b\w*cmd.exe\w*\b', cmd)]
Out[41]: [(20, 27), (40, 47)]
In [42]: [(m.start(0), m.end(0)) for m in re.finditer(r'cmd.exe', cmd)]
Out[42]: [(20, 27), (40, 47)]
In [44]: result = re.findall(r'cmd.exe', cmd, re.I)
In [45]: result
Out[45]: ['cmd.exe', 'cmd.exe']. <-- I wanted ['C:\\Windows\\system32\\cmd.exe', 'cmd.exe']
In [48]: result = re.findall(r'cmd.exe|\bcmd.exe\b', cmd, re.I)
In [49]: result
Out[49]: ['cmd.exe', 'cmd.exe']
Короче говоря, как получить все слова, которые содержат подстроку / регулярное выражение?