Next: 字元處理 - 括號與範圍表示
Up: 字元處理
Previous: 字元處理
  Contents
字元,就是單一一個英文字母的處理。先來個基本的字元
- . 代表任意"一個"字元除了換行newline字元不過awk可以match換行記住
- ? 代表"前面"字元出現0次或1次
- + 代表"前面"字元出現1次以上 1 2 3 4 ... 不出現return false
- * 代表"前面"字元出現0次以上 0 1 2 3 ...
這邊初學者比較常犯的錯誤是在shell下的wildcard * 的習慣,以為只要給個*
就代表所有字元,其實是 ? + * 都要前面搭配 . 來使用才能代表任意字元
^
代表行首
- $ 代表行尾
\
脫逃字元(escape)取消特定字元的涵義用的
這邊比較要注意的是字在行首起頭的^
,行尾的$,與在行中的case分屬不同
的regular express,小心有的程式會把這三種當成不同的regular express,
這會不一樣喔。不過有的不會。
- /
^#
/ 有#
在一行的第一字元時 就還回TRUE
- /
^
bag/ bag在行首的行
- /bag$/ bag結尾的行
- /bag/ bag在中間的行 不過有的程式處理沒有這麼嚴格像sed
- /b.g/ 表示bag beg bug都行
- /b
\
.g/ 表示b.g
- /
^
..g/ 表示行首bag beg bug xxg都符合 但一定要三個字母
- /
^
.*g/ 表示行首有任何字元的然後有個g的都可以還回true
- /beg*/ be, beg, begg, beggg, .......
- /beg+/ beg, begg, beggg, begggg, ......
- / */ 空白字元也行
Cyril Huang
2002-06-14