Loading... <blockquote>在本博客中,”正则表达式”为一系列文章,如果你想要从头学习怎样在Linux中使用正则,可以参考此系列文章,直达链接如下: <a href="https://www.zsythink.net/archives/tag/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f/" target="_blank" rel="noopener">在Linux中使用正则表达式</a> “正则”系列的每篇文章都建立在前文的基础之上,所以,请按照顺序阅读这些文章,否则有可能在阅读中遇到障碍。 </blockquote> 此处,我们来认识一个常用符号,它就是反斜杠 “\” 反斜杠有什么作用呢?先不着急解释,先来看个小例子。 前文中说过,在正则表达式中,”.”代表任意单个字符(如果不明白请回顾前文),比如,可以使用”a..”表示字母a后面跟随了两个任意字符,如下。 <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_1.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_1.png" style=""> 正如上图所示,只要字母a后面跟随了两个字符,即可被匹配到,无论后面跟随的两个字符是什么,数字、符号、字母均可。 但是,我现在的要求变了, 我只想找出文本中 “以a开头,后面跟随了两个’点’的文本” ,换句话说就是,我想要匹配到上图中文本文件中的第6行。 <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_2.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_2.png" style=""> 那么,我该怎么办呢? 理论上来说,我想要找出”a点点”,应该使用如下命令 <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_3.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_3.png" style=""> 但是正如之前的示例一样,”.”在正则表达式中代表任意单个字符,所以,”.”在正则表达式中,并不能表示”点”本身。 可是,我们现在的需求就是匹配”点”本身,并不希望”.”代表其他字符,我只希望”.”就代表”点”。 这个时候,就需要用到反斜杠”\” “\”与正则中的符号结合在一起时,就表示这个符号本身的含义,示例如下 <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_4.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_4.png" style=""> 如上图所示,”\.”就表示单个”点”,我们称反斜杠”\”为转义字符。 同理,如果我们想要匹配”*”本身,而不是想要使用”*”表示任意次数,我们可以使用”\*”,示例如下。 <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_5.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_5.png" style=""> 前文中提到过,在基本正则表达式中,”\?”表示其前面的字符出现0次或1次,那么,如果我们想要匹配问号本身,我们应该怎么做呢? “\?”就已经包含反斜杠了,难道我们要再加一个反斜杠,嘻嘻~不要陷入思维怪圈了,在基本正则表达式中,如果想要匹配问号本身,只需要使用”?”即可,示例如下 <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_6.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_6.png" style=""> 加号同理,基本正则中,使用”\+”表示匹配前面的字符至少1次,当我们想要匹配加号本身时,直接使用”+”就行了,示例如下 <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_7.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_7.png" style=""> 在某些时候,我们就是想要匹配反斜杠本身,我们该怎么办呢?没错,在反斜杠前面加上反斜杠就行了,示例如下。 <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_8.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_8.png" style=""> 细心如你一定发现了,上例中使用了单引号,而之前的示例中都使用双引号。 此处如果使用双引号将 正则”引起”,将会报错,示例如下 <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_9.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/06/060317_0217_9.png" style=""> 好了,关于转义符反斜杠就总结到这里,希望能够对你有所帮助。 转载自朱双印日志https://www.zsythink.net/archives/1977 Last modification:May 29, 2024 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏