文章詳情頁
python是怎么實現過濾 #注釋代碼的?
瀏覽:71日期:2022-08-15 11:47:21
問題描述
今天看python核心編程看到一個問題,題意大概就是過濾一個file-like對象里“#”的注釋部分,然后輸出其他部分。簡單情形下,另寫一行的#注釋比較好判斷,用startwith(’#’)匹配應該能滿足。問題在于那些寫在正常業務代碼之后的注釋,該如何過濾之?舉個例子:
if name.find(',') == -1:#Annotations pass
請問有沒有人了解它是怎么過濾這種注釋的?謝謝。
問題解答
回答1:講下思路如果不考慮字符串中的#,那么很方便,用re匹配
#[^n]*?n
即可如果考慮到字符串中的#稍微復雜些,匹配:
#[^’']*?n
勉強能應付大多數情況
缺點是對于
’a’ # ’b’
這樣的語句匹配不了,因為Python的re不支持平衡組。
回答2:直接用正則匹配#到行尾不就得了。
相關文章:
1. Docker for Mac 創建的dnsmasq容器連不上/不工作的問題2. docker安裝后出現Cannot connect to the Docker daemon.3. css - 定位為absolute的父元素中的子元素 如何設置在父元素的下面?4. java - 請問在main方法中寫成對象名.屬性()并賦值,與直接參參數賦值輸錯誤是什么原因?5. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。6. mysql里的大表用mycat做水平拆分,是不是要先手動分好,再配置mycat7. java - socket類服務端如何防止被ddos攻擊?8. javascript - 圖片鏈接請求一直是pending狀態,導致頁面崩潰,怎么解決?9. python - beautifulsoup獲取網頁內容的問題10. 怎么用css截取字符?
排行榜
