regexp -
針對一個字串匹配一個正則表示式
regexp ?
switches?
exp string ?
matchVar?
?
subMatchVar subMatchVar ...?
確定正則表示式
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'',其他時候被設定成空串。
re_syntax(n),
regsub(n)
match, regular expression, string
寒蟬退士
2001/10/27
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh