簡介
grep
grep 是unix 預設的程式,是global regular expression print 的縮寫
是 標準文字編輯器 的工具之一
常用使用格式為 grep “regex” file
比如 grep “apple” file.txt
regular expression (regex)
格式化的表達字串的方法
由字母集與特殊字元組成
特殊字元可以幫助表達式簡潔與有效
比如 . 代表任意一個字元
也在使用vim 、 sed 等文字編輯時可以幫上忙 (比如substitute)
常用方法
跳脫字元 \
想要真的匹配特殊字元 (把他們當字元看待,而非所表示的功能)
可以加上 \
比如要匹配 .
就必須用 \.
另外,當匹配認不出以下功能時,也可以試著加跳脫字元看看
比如\?
任意一字元
. 可以表達任一字元
比如 “f.x”
可以表示 fox , fax, fex ,fbx ….
0 or 多個字元
C* 可以表達0個 或多個字元C
比如 “fo*x”
可以表示 fx ,fox,foox,fooox ….
1 or 多個字元
C+ 可以表示表示1個或多個字元C
類似於*,只是會要求至少出現一次
頭尾配對 $ ^
C$ 匹配結尾為C的字串
^C 匹配開頭為C的字串
比如 "”
非空格\S 空格\s
比如 “.*oomer”
會包含the consoomer
但是 “\S*oomer”
則只會匹配consoomer
optional \?
C\? ,則會匹配有C的以及沒有C的
比如 “https\?”
則 http , https 都會被匹配
範圍
[a-b] 對有序列的字串表示從a到b
比如
[0-5] 0~5
[0-9] 所有數字
[a-z] 所有小寫字母
[A-Za-z] 所有字母
整合應用
所有大寫開頭,大寫結尾的字串?
“^[A-Z].*[A-Z]$”
參考資料
Regular Expressions (Regex): All the Basics - luke smith
https://www.youtube.com/watch?v=77I4ZkhuHsQ&t=229s