轉義符的深入理解


轉義符都知道,但可能會理解不到位,或者不深入。今天在工作中,遇到了轉義符的問題,記錄於此,也供大伙參考。

 

1.問題概述

爬取到的文本段落,中間有\t \r未處理就存入數據庫了(文本截取如下:   '......有效性。\r次要......'  ),導致后來需要刷庫,而在刷庫過程中,

我用的是:UPDATE china_drug_trials SET public_test_info = REPLACE(public_test_info, CHAR(10), '');

但應該是:UPDATE china_drug_trials SET public_test_info = REPLACE(public_test_info, "\\r", '') ;

 

2.問題反思

錯誤出在理解 轉義符何時生效上。

 

  • 轉義字符(如\n \r)什么時候生效

  當它會被解釋器解釋的時候,如print輸出時

 

  • 如果轉義字符(如\n \r)在字符串里呢?

  那么它只是代表其特殊意義,沒被解釋,並不生效。即上文提到的字符串,要替換其中的 \r,用 \\r 就可以了(兩個\ 轉義 轉義符'\')。

  (就好像玫瑰里塞個求婚鑽戒,沒被女票看到就是沒生效的,雖然你知道這枚鑽戒是有其特殊意義的)


 示例:

  

  \n 沒被解釋器解釋,並不生效,所以 b 指的是 '123\n456'

  \n 被解釋器解釋,即print輸出時,轉義字符生效啦,換了行

 

  • 如果字符串中有已經生效的轉義符呢?(如換行或者制表符)

  要操作它,要么直接找\r \n ,要么根據其ASCII碼找。即上文提到的字符串,要替換其中已生效的\r,用 \r 或者CHAR(9)。

 示例:

  

  替換字符串 a 中已經生效的轉義符,要么直接找\r \n ,要么根據其ASCII碼找。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM