NoteDeep
在正则表达式中,还有一个常用的符号,就是反斜杠 "\",转义字符
具体含义还是通过示例来解释。
先创建一个名为regextest的文本,其内容如下:
[root@localhost135 ~]# cat -n regextest
1 a..
2 abc
3 a\\
4 a*
[root@localhost135 ~]#
在前文中,我们知道 在正则表达式中,"." 代表任意单个字符,比如a.. 表示字母a后面跟随两个任意字符,如下所示:
[root@localhost135 ~]# grep -n a.. regextest
1:a..
2:abc
3:a\\
[root@localhost135 ~]#
但如果我们想要查找以a开头,后面跟随了两个点的文本,应该如何查找呢?
显示再使用 grep a.. regextest是不符合我们要求的

此时就需要用到转义字符 "\" ,如下所示:
[root@localhost135 ~]# grep -n "a\.\." regextest
1:a..
[root@localhost135 ~]#

"\" 与正则中的符号结合在一起时,就表示这个符号本身的含义。

如果想要表示"*" 本身,就需要用"\*",如下所示:
[root@localhost135 ~]# grep -n "a\*" regextest
4:a*
[root@localhost135 ~]#

前文中提到过,\?表示其前面的字符出现0次或者1次,\+表示前面的字符至少出现1次,那如果想要表达 ? +本身,如何操作呢?
其实 要想表达 ?+ 本身,直接使用 ? + 即可 ,不需要再添加 \

注意:如果想要使用反斜杠本身,则需要多加一个\, 此处正则要用单引号,如下:
[root@localhost135 ~]# grep -n 'a\\\\' regextest
3:a\\
[root@localhost135 ~]#

评论列表