有1.txt文件,里面有如下内容:
a:r?t:123456
123:xyz:abcdefg
aming:r?t:ssssss
lxy:r*t:ecccdsad
1.txt:100:shldhga'
11txt:666:233333
grep --color -n 'r\?t' 1.txt匹配到的内容如下:
1:a:r?t:123456
3:aming:r?t:ssssss
4:lxy:r*t:ecccdsad
5:1.txt:100:shldhga'
6:11txt:666:233333
而grep --color -n 'r?t' 1.txt匹配到的内容如下:
1:a:r?t:123456
3:aming:r?t:ssssss
(红色表示被匹配到的字符)
使用了脱义符号\,\?表示的却是正则表达式中?的含义。而使用?表达的却是本来含义,为什么?的设定是这样的?.和*要使用本来含义时都是要加脱义符号\的(\*和\.)
a:r?t:123456
123:xyz:abcdefg
aming:r?t:ssssss
lxy:r*t:ecccdsad
1.txt:100:shldhga'
11txt:666:233333
grep --color -n 'r\?t' 1.txt匹配到的内容如下:
1:a:r?t:123456
3:aming:r?t:ssssss
4:lxy:r*t:ecccdsad
5:1.txt:100:shldhga'
6:11txt:666:233333
而grep --color -n 'r?t' 1.txt匹配到的内容如下:
1:a:r?t:123456
3:aming:r?t:ssssss
(红色表示被匹配到的字符)
使用了脱义符号\,\?表示的却是正则表达式中?的含义。而使用?表达的却是本来含义,为什么?的设定是这样的?.和*要使用本来含义时都是要加脱义符号\的(\*和\.)
编辑回复