Использование Regex в списке строк с вопросительными знаками - PullRequest
0 голосов
/ 22 апреля 2020

Во-первых, я знаю, что есть похожие вопросы, но я не смог найти ничего, что действительно соответствовало бы моему делу.

У меня есть большая строка, из которой я хочу вырезать некоторые тексты.

import re
largeString = 'abcdefgTHIS NEEDS TO GO?abdehdfenTHIS NEEDS TO GO TOO?asjdhnasjdf'
itemList =['THIS NEEDS TO GO?','THIS NEEDS TO GO TOO?']
<<<some code>>>
Out: 'abcdefgabdehdfenasjdhnasjdf

Я пробовал это:

for i in itemList:
  largeString = re.sub(str(i), '', largeString.rstrip())

Проблема в вопросительном знаке в строках поиска - я знаю, что обычно я делаю «ЭТО НУЖНО ИДЕТ?». К сожалению, список очень большой, и я не могу изменить его вручную.

Есть ли способ заставить регулярное выражение игнорировать функцию вопросительного знака?

Любая помощь или идея приветствуется!

Спасибо!

1 Ответ

1 голос
/ 22 апреля 2020

Если ваши строки внутри itemList содержат только строки (не содержат регулярных выражений), тогда вы можете использовать re.escape перед тем, как передать их любому поисковому параметру. Как следует из названия, оно будет go над строкой и будет экранировать все символы, которые имеют особое значение в regex.

import re
largeString = 'abcdefgTHIS NEEDS TO GO?abdehdfenTHIS NEEDS TO GO TOO?asjdhnasjdf'
itemList =['THIS NEEDS TO GO?','THIS NEEDS TO GO TOO?']
for item in itemList:
  largeString = re.sub(re.escape(item), '', largeString)

Вывод:

>>> largeString
'abcdefgabdehdfenasjdhnasjdf'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...