3.2.2.4 文本匹配錨點
阿新 • • 發佈:2019-01-23
完成 字符串 12個 bcd 刪除 正則 情況 範例 有時 再介紹兩個 mate 字符就能完成整個 BRE 的介紹了。這兩個 meta 字符是脫字符號(^)與貨幣符號($),它們叫做錨點(anchor),因為其用途在限制正則表達式匹配時,真對要被匹配字符串的開始或結尾進行匹配(^在此處的用法與方括號表達式裏的完全不同)。假定現在有一串要進行匹配的字:abcABCdefDEF ,以下標列舉匹配範例:
正則表達式內錨點的範例
^與$也可同時使用,這種情況是將括起來的正則表達式匹配整個字符串(或行)。有時^$這樣簡易正則表達式也很好用,它可以用來匹配空的字符串或行列。例如在 grep 加上 -v 選項可以用來顯示所有不匹配與模式的行,使用上面的做法,便能過濾掉文件裏的空行。
cc -E foo.c | grep -v ‘^$‘ > foo.out 預先刪除空行
^與$ 僅在BRE的起始與結尾處具有特殊用途。若出現在字符串中間則表示自身。
模式 | 是否匹配 | 匹配文本(粗體)/ 匹配失敗的理由 |
ABC | 是 | 居中的第4、5及6個字符:abcABCDEFdefDEF |
^ABC | 否 | 限定匹配字符串的起始處 |
def | 是 | 居中的第7、8及9個字符:abcABCDEFdefDEF |
def$ | 否 | 限制匹配字符串的結尾處 |
[[:upper:]]\{3\} | 是 | 居中的第4、5及6個字符:abcABCDEFdefDEF |
[[:upper:]]\{3\}$ | 是 | 居中的第10、11及12個字符:abcABCDEFdefDEF |
^[[:alpha:]]\{3\} | 是 | 起始的第1、2及3個字符:abcABCdefDEF |
3.2.2.4 文本匹配錨點