有兩個元字元用於指定字串出現在行首或行末。脫字元(^)是指示開始的單字元正規表示式。美元符號($)是指示行結尾的單字元的正規表示式。這些通常稱為"定位符",因為它們將匹配限定在特定位置。例如,可以使用以下表示式列印以first開始的行:
^first
沒有^元字元,這個表示式將列印包含first的任意行。
通常,使用vi輸入要由troff處理的文字,並且不想讓空格出現在行的結尾。如果想找到(並刪除)它們,下面的正規表示式可以匹配在結尾處有乙個或多個空格的行:
□□*$
troff請求和巨集必須在行的開始處輸入。它們是兩個字元的字串,前面帶有乙個句點。如果請求或巨集有乙個引數,那麼它通常後面跟有乙個空格。用於搜尋這樣的請求的正規表示式是:
^\...□
這個表示式匹配"行首有乙個句點,隨後跟有兩個字元的字串,然後是乙個空格的行"。
可以使用兩個連續的定位元字元來匹配空行,即:^$
可以使用這種模式計算檔案中的空行數,在grep中使用計數選項-c:
$ grep
-c '^$' ch04 5
如果想使用sed來刪除空行,那麼這個正規表示式很有用。下面的正規表示式可用於匹配空行,即使其中包含空格:
^□*$
參考資料:
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...
正規表示式字元
正規表示式符號 字元 描述 標記下乙個字元是特殊字元或文字。例如,n 和字元 n 匹配。n 則和換行字元匹配。序列 和 匹配,而 則和 匹配。匹配輸入的開頭。匹配輸入的末尾。匹配前乙個字元零或多次。例如,zo 與 z 或 zoo 匹配。匹配前乙個字元一次或多次。例如,zo 與 zoo 匹配,但和 z...
正規表示式相關 正規表示式字元描述
1 字元描述 將下乙個字元標記為特殊字元或字面值。例如 n 與字元 n 匹 配。n 與換行符匹配。序列 與 匹配,與 匹配。匹配輸入的開始位置。匹配輸入的結尾。匹配前乙個字元零次或幾次。例如,zo 可以匹配 z zoo 匹配前乙個字元一次或多次。例如,zo 可以匹配 zoo 但不匹配 z 匹配前乙個...