关于反斜杠,转义字符总有人问我,今天写一下,我拜读了几篇文章,如下链接,链接如下:
https://blog.csdn.net/jinixin/article/details/56705284
https://www.cnblogs.com/miaoning/p/11450659.html
引用文章里的话,首先一切问题或者误会,麻烦,烦恼的原因就是反斜杠在字符串里有转义的作用,在正则里有转义的作用,最关键都是以string形式工作。就乱套了
所以我是这么理解的,我们写的正则表达式,我称之为表达式,这个表达式能够正则化,经历两个过程,或者说经历了两个计算机底层函数,首先是一个字符串函数,我们将表达式输入给字符串函数,字符串函数解释后生成字符串函数的返回值,这个返回值再作为正则函数的输入值,最终正则函数的产出最终结果。
如果理解这个过程,再去理解反斜杠使用原理或者使用规则。如下:
1.字符串转义
反斜杠,在字符串里是转义字符的最重要的组成,这里不赘述,所以在一个字符串里,**反斜杠第一任务是转义,不是第一先代表它自己,如果一旦后面的字符能够形成转义字符,那它后面的字符就组成转义字符。如果我们要这种情况下,想表达一个反斜杠,需要在反斜杠后面再加一个反斜杠,进行再次转义,转成它自己本来的意思反斜杠!**每次这么写很麻烦我们可以在引号前面加一个r,也就是raw string,便可省略了这一个工作,因为一旦文本多了,你会很乱。实例如下图。
2 正则转义
正则函数这边需要一个字符串返回值,这个返回值进行正则化,比如我们要展示数字,那需要可以写\d这个形式,对于正则函数来了说,需要一个反斜杠和字母d来进行正则转义,那需要的反斜杠需要字符串的返回值中含有,要想字符串返回值中含有反斜杠,在字符串函数里输入值中反斜杠要么前面再加一个反斜杠,将反斜杠第一命令转义 转换成反斜杠本身的意义,或者如上所述的字符串前面加一个r进行操作。
具体分析讲解请看下面的图和图解。