开发者社区 问答 正文

使用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 557 分享
分享
版权
举报
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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等