开发者社区> 问答> 正文

使用python脚本找出C文件中是否存在注释嵌套

这是一个代码,用于查找sample.c文件中是否存在注释嵌套,但是我收到此错误:没有重复。谁能告诉我我要去哪里错了?

import re

with open('sample.c',mode='r') as myfile:
    flist = myfile.readlines()

flag1 = False

for j in range(len(flist)):
    if re.search('/\*,flist[j]):
        if flag1:
            print(f'Warning: Nested comment at line number {j+1}')
        else:
            flag1 = True
    if flag1:
        if re.search('\*',flist[j]):
            flag1 = False

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 22:29:15 534 0
1 条回答
写回答
取消 提交回答
  • 在Python正则表达式(RE)语法中,*是一个特殊字符, 表示与先前RE重复0个或多个重复。模式'''`表示“不重复”,因为没有“可重复”。如果不使用重复说明符,则要做的是使用\字符对其进行转义,例如: *。修改后的行使程序按预期工作:

            if re.search('/\\*,flist[j]):
    ...
            if re.search('\\*',flist[j]):
    

    这仍然不能解决注释嵌套在同一行上的情况。

    /* this is a /* nested comment \* \*
    

    为此,我们需要匹配多个/ *实例。以下修改可以做到这一点。

            if flag1 or re.search('/\\*\*\\*,flist[j]):
                print(f'Warning: Nested comment at line number {j+1}')
    

    回答来源:stackoverflow

    2020-03-24 22:29:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载