regexp(3tcl)

NAME
regexp - 針對一個字串匹配一個正則表示式

總覽 SYNOPSIS
regexp ?switches? exp string ?matchVar? ?subMatchVar subMatchVar ...?

描述 DESCRIPTION

確定正則表示式 exp 是否匹配部分或全部 string，在未指定 -inline (參見後面)的時候，如果匹配則返回 1，否則返回 0。(正則表示式匹配的描述請參見 re_syntax 參考頁。)

如果在 string 之後指定了補充的引數，則把它們作為變數的名字對待，把關於 string 中匹配 exp 的那部分的資訊返回到其中。MatchVar 將被設定為匹配全部 exp 的 string 的範圍。第一個subMatchVar 將包含與 exp 中最左的圓括號中的子表示式相匹配的 string 中那部分字元，下一個 subMatchVar 將包含與exp 中從左到右的下一個圓括號中的子表示式相匹配的 string 中那部分字元，以此類推。

如果給 regexp 的初始的引數以 - 為開始，則它們被作為開關來對待。當前支援下列開關:

-about
    不再嘗試匹配正則表示式，返回包含關於正則表示式資訊的一個列表。列表的第一個元素是子表示式計數。第二個元素是描述正則表示式各種特性的屬性名的一個列表。這個開關主要用於除錯目的。

-expanded
    啟用展開的(expanded)正則表示式語法，將忽略白空格和註釋。這與指定 (?x) 嵌入選項相同。(see METASYNTAX, below).

-indices
    改變在 subMatchVar 中儲存的內容。不再儲存 string 中匹配的字串，每個變數將包含兩個十進位制字串組成的一個列表，它們給出匹配的字元範圍中的第一個和最後一個字元在 string 中的索引 。

-line
    啟用換行敏感匹配。預設的，換行是沒有特殊意義的一個完全的普通字元。加上了這個標誌，‘[^’ 方括號表示式和‘.’將永不匹配換行，‘^’除了它的正常功能之外還匹配在任何換行之後的空串，而‘$’除了它的正常功能之外還匹配在任何換行之前的空串。這個標誌等價於指定 -linestop 和 -lineanchor 二者，或者 (?n) 嵌入選項。 (see METASYNTAX, below).

-linestop
    改變‘[^’方括號表示式和‘.’的行為，這樣表示式將停止於換行。這與指定 (?p) 嵌入選項相同。 (see METASYNTAX, below).

-lineanchor
    改變‘^’和‘$’(“錨”)的行為，這樣它們分別的匹配一行的開始和結束。這與指定 (?w) 嵌入選項相同。 (see METASYNTAX, below).

-nocase
    導致在匹配處理中把 string 中的大寫字元與小寫字元同樣對待。

-all
    導致盡字串中可能的次數去匹配正則表示式，返回發現的匹配總數。如果一起指定的還有匹配變數，它們將只保持最後的匹配。

-inline
    導致命令把原先要放置到匹配變數中的資料作為一個列表返回。當使用 -inline 的時候，不可以指定匹配變數。如果還使用了 -all，在每次重複操作(iteration)時串聯列表，這樣將總是返回一個平坦的列表。對於每次匹配的重複操作，這個命令將新增整體的匹配資料，為正則表示式中的每個子表示式加上一個元素。例如:
        regexp -inline -- {\w(\w)} " inlined "
     => {in n}
        regexp -all -inline -- {\w(\w)} " inlined "
     => {in n li i ne e}

-start index
    在字串中指定一個字元索引，在這個偏移量上開始匹配。當使用了這個開關的時候，‘^’將不匹配行的開始，而 index 上匹配字串的開始。如果指定了 -indices，編制索引將以輸入字串的絕對開始為起始。index 將被約束為輸入字串的束縛。

--  標記開關的結束。這個標誌之後的引數即使以 - 為開始仍被作為 exp 對待。

如果 subMatchVar 比 exp 中的圓括號中的子表示式多，或者在 exp 中的一個特定子表示式不匹配字串。(比如，因為它是不被匹配的子表示式的一部分), 則在指定了 -indices 的時候，相應subMatchVar 將被設定成``-1 -1''，其他時候被設定成空串。

參見 SEE ALSO
re_syntax(n), regsub(n)

關鍵字 KEYWORDS
match, regular expression, string

[中文版維護人]
寒蟬退士

[中文版最新更新]
2001/10/27

《中國 Linux 論壇 man 手冊頁翻譯計劃》:
http://cmpp.linuxforum.net

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh