как удалить все, что находится между скобками?

#python

#python

Вопрос:

 s="function(function()function(hii))wait function(function(byee))"
 

для этой строки мне нужен вывод, подобный этому

 function()wait function()
 

как удалить содержимое между скобками?

 def filter_line(line):
    count=0
    ignore=False
    result=[]
    for c in line:
        if c==")" and count!=0:
            count=0
            ignore=False
        if not ignore:
            result.append(c)
        if c=="(" :
            ignore=True
            count=1
        print(count)
    return "".join(result)
 

я получил этот код отсюда, и я получил вывод для своей проблемы в виде

 function()function())wait function())
 

Комментарии:

1. Моей первой попыткой было использовать регулярное выражение, но оно не учитывало бы закрытие и открытие скобок, поэтому решением было бы использовать стек / очередь.

2. Возможно, вы захотите использовать регулярное выражение

Ответ №1:

 s = "function(function()function(hii))wait function(function(byee))"
brack = 0
t = ""
for letter in s:
    if letter == '(':
        brack  = 1
        if brack == 1:
            t  = letter
        continue
    elif letter == ')':
        brack -= 1
        if brack == 0:
            t  = letter
        continue
    
    if not brack:
        t  = letter
 

вывод:

функция () функция ожидания ()

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

Ответ №2:

Вот способ регулярного выражения

 input_str = "function(function()function(hii))wait function(function(byee))"
pattern = r"(function().*()wait function().*())"
output = re.sub(pattern, r"123", input_str)
print(output)
 

Вывод:

 function()wait function()