84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
今天看python核心编程看到一个问题,题意大概就是过滤一个file-like对象里“#”的注释部分,然后输出其他部分。简单情形下,另写一行的#注释比较好判断,用startwith('#')匹配应该能满足。问题在于那些写在正常业务代码之后的注释,该如何过滤之?举个例子:
if name.find(",") == -1:#Annotations pass
请问有没有人了解它是怎么过滤这种注释的?谢谢。
讲下思路如果不考虑字符串中的#,那么很方便,用re匹配
#
#[^\n]*?\n
即可如果考虑到字符串中的#稍微复杂些,匹配:
#[^'"]*?\n
勉强能应付大多数情况
缺点是对于
'a' # 'b'
这样的语句匹配不了,因为Python的re不支持平衡组。
直接用正则匹配#到行尾不就得了。
讲下思路
如果不考虑字符串中的
#
,那么很方便,用re匹配即可
如果考虑到字符串中的
#
稍微复杂些,匹配:勉强能应付大多数情况
缺点是对于
这样的语句匹配不了,因为Python的re不支持平衡组。
直接用正则匹配
#
到行尾不就得了。