这是一个代码,用于查找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
在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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。