Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 拆下未闭合的支架_Python_Regex_String_Brackets - Fatal编程技术网

Python 拆下未闭合的支架

Python 拆下未闭合的支架,python,regex,string,brackets,Python,Regex,String,Brackets,如何删除未关闭的括号及其内容,如果它们已关闭块。例如: "(eaardf((eaar)(eaar" -> "eaardf((eaar)" 我这样做了,但我无法生成正确的正则表达式: import re str1 = '(eaardf((eaar)(eaar' p = re.compile(r'\([a-z)]*.*') p.sub('', str1) >>> '' 请帮忙 简短回答:不能使用Python正则表达式 关于这一点,道文的评论已经给出了非常详细的解释 中等回

如何删除未关闭的括号及其内容,如果它们已关闭块。例如:

"(eaardf((eaar)(eaar" -> "eaardf((eaar)"
我这样做了,但我无法生成正确的正则表达式:

import re
str1 = '(eaardf((eaar)(eaar'
p = re.compile(r'\([a-z)]*.*')
p.sub('', str1)
>>> ''

请帮忙

简短回答:不能使用Python正则表达式

关于这一点,道文的评论已经给出了非常详细的解释


中等回答:标准的
re
模块无法处理递归模式,但Pypi中有一个模块声称能够::递归和重复模式是受支持的。-注意未经测试,因为当事情对于re来说过于复杂时,我倾向于最终构建一个专用的解析器,通过它是旧lex+yacc的Python实现。

您期望的输出是不正确的(如果我理解正确),“eaardf((eaar)”仍然有未闭合的括号。需要“eaardf((eaar)”from“(eaardf((eaar)(eaar)”吗.为什么?逻辑是什么?第一个“(”未关闭。您能更具体地说明规则吗?可能重复(提示答案为否)。这可以用“堆栈”IMO实现。我将尝试用堆栈解决。