我试着把一个C程序按功能块分开。例如
我尝试使用regex库并尝试按(){
拆分。但是没有用。不知道从哪里开始。你知道吗
string = """
int firt(){
if () {
}
}
customtype second(){
if () {
}
for(){
}
}
fdfndfndfnlkfe
"""
我希望结果是一个列表,其中每个函数块作为一个元素:['int first(){ ... }', 'customtype second(){....}']
我尝试了以下方法,但是得到了None
import regex
import re
reg = r"""^[^()\n]+\([^()]*\)\s*
\{
(?:[^{}]*|(?R))+
\}"""
print(regex.match(reg, string))
首先:不要使用解析器。
第二,如果您坚持并想了解为什么应该使用解析器,那么请看一下这种递归方法(它只适用于较新的
regex
模块):见a demo on regex101.com。这将与comments that include curly braces中断。
在
Python
这将是解析源代码是一项相当困难的任务。软件如Bison在C、C++和java中生成源代码解析器(C代码可以在Python中使用),但是你不可能创建正则表达式来解决这个问题(至少是容易的)。你知道吗
相关问题 更多 >
编程相关推荐