Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

转义符的深入理解

暮良文王 2019-02-14 22:14:00 阅读数:220 评论数:0 点赞数:0 收藏数:0

转义符都知道,但可能会理解不到位,或者不深入。今天在工作中,遇到了转义符的问题,记录于此,也供大伙参考。

 

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码找。

 

版权声明
本文为[暮良文王]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/liangmingshen/p/10381071.html

编程之旅,人生之路,不止于编程,还有诗和远方。
阅代码原理,看框架知识,学企业实践;
赏诗词,读日记,踏人生之路,观世界之行;

支付宝红包,每日可领