Удаление строки между повторяющимися разделителями в python - PullRequest
0 голосов
/ 14 марта 2019

Я должен удалить строки, которые начинаются с "===", а также заканчиваются "===" (например, я должен заменить строку "===Links===" на пустую строку) в python. Но проблема здесь в том, что он может начинаться с трех "=" или четырех или любого числа '='. Я пытался использовать регулярное выражение re.sub('[=]*.*?[=]*', '', string). Но когда он запускается на "===Refs===", он выдает "Refs" в качестве вывода вместо пустой строки. Можете ли вы предложить что-то для этого?

Ответы [ 3 ]

2 голосов
/ 14 марта 2019
import re

string = '===Ref==='
pattern = r'^\=+.+\=+$'

string = re.sub(pattern, '', string)
1 голос
/ 14 марта 2019

Слишком поздно: - (

import re
str = '===Links=== are great, but ===Refs=== bla bla == blub ===blub'

pattern = re.compile('=+\w+=+')
replaced = re.sub(pattern, '', str)
print(replaced)
0 голосов
/ 14 марта 2019

.? предполагает, что вы принимаете только один или несколько символов между вашими = с. Попробуйте изменить его на .*, чтобы сопоставить несколько символов между = с.

Возможно, вы можете использовать str.startswith() и str.endswith(), чтобы выяснить, начинается или заканчивается строка с ===?

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