Python — Удаление круглых скобок и кавычек

#python-3.x #regex

Вопрос:

Я пытался удалить парные скобки(включая текст между ними), несбалансированные скобки и кавычки из строки.

Что я сделал до сих пор:

 import re

sample_text = '""sads"add"sfsfdsfds()()(0sefdAAAsfs)dasdad(asd'
res = re.sub(r'([^)]*)', '', sample_text))
 

Он совпадает только с ()()(0sefdAAAsfs) частью текста. Несбалансированность и кавычки, оставленные непревзойденными. Что можно сделать, чтобы улучшить вышеуказанное регулярное выражение?

Ответ №1:

На самом деле это не то, для чего подходит регулярное выражение, поэтому оно не является подходящим инструментом для этой работы. Сказав это, вы можете использовать следующий шаблон, чтобы увидеть, есть ли открывающий родитель, затем ноль или более непарен и соответствующий закрывающий родитель:

 ([^) ]*)
 

Замените " или ' или [ или что-либо другое для других типов соответствующих компонентов.

Но опять же, это не сработало бы с чем-то подобным:

 (asdf))))))))
 

введите описание изображения здесь

Короче говоря, это не проблема, которую может решить регулярное выражение. Попробуйте протестировать его здесь: https://regex101.com/r/bdiK5W/2.