#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()