[dywang@dywmac ~]$ vim a.txt [dywang@dywmac ~]$ cat a.txt asdt ast asbt as?t asbt as?t as\bt as\?t
as?t
不加單引號,基礎正規表示法中 ?
不是特殊字元,使不使用 \
跳脫都一樣查到 as?t
。
[dywang@dywmac ~]$ grep as?t a.txt as?t as?t [dywang@dywmac ~]$ grep as\?t a.txt as?t as?t
as?t
加單引號,則單引號中每一個字符都要匹配,基礎正規表示法中 ?
不是特殊字元,查到 as?t
。
[dywang@dywmac ~]$ grep 'as?t' a.txt as?t as?t
as\?t
加單引號,則單引號中 \?
為延伸正規表示法的 ?
,也就是重複前一字符 0 或 1 次,所以查到 ast
。
[dywang@dywmac ~]$ grep 'as\?t' a.txt ast
a\?t
或 h\?t
加單引號,則單引號中 \?
為延伸正規表示法的 ?
,也就是重複前一字符 a(h) 0 或 1 次,所以有 t
都查到。
[dywang@dywmac ~]$ grep 'a\?t' a.txt asdt abt afbt ar?t asbt as?t as\bt as\?t [dywang@dywmac ~]$ grep 'h\?t' a.txt asdt ast asbt as?t asbt as?t as\bt as\?t