假定字符串只包含两类注释:/*注释内容*/ 和 //注释内容,/*...*/可能出现多次,请编程实现删除字符串中所有/*...*/内容及//至行尾内容,其它字符不变。
时间: 2024-09-28 16:10:10 浏览: 34
C++期末复习--2.练习题_填空.docx
在Python中,你可以使用正则表达式库`re`来实现这个功能。下面是一个简单的函数,它接受一个字符串作为输入,然后返回一个处理过的字符串,其中所有的多行注释(`/*...*/`)和单行注释(`/…`)都被删除:
```python
import re
def remove_comments(s):
# 使用正则表达式匹配 /* 和 */ 之间的内容,并替换为空
s = re.sub(r'/\*.*?\*/', '', s, flags=re.DOTALL)
# 使用正则表达式匹配单行注释,从 // 开始到行尾
s = re.sub(r'(//)[^\n]*', r'\1', s)
return s
# 示例用法
input_string = "Hello! /* This is a comment */ Some code here // Another single line comment."
result = remove_comments(input_string)
print(result) # 输出: "Hello! Some code here."
```
在这个函数中,`re.DOTALL`标志允许`.`通配符匹配包括换行符在内的所有字符,以便匹配多行注释。
阅读全文