字符匹配
正則表達式的關鍵之處在于確定你要搜索匹配的東西,如果沒有這一概念,Res將毫無用處。
每一個表達式都包含需要查找的指令,如表A所示。
Table A: Character-matching regular expressions
|
操作
|
解釋
|
例子
|
結果
|
.
|
Match any one character
|
grep .ord sample.txt
|
Will match “ford”, “lord”, “2ord”, etc. in the file sample.txt.
|
[ ]
|
Match any one character listed between the brackets
|
grep [cng]ord sample.txt
|
Will match only “cord”, “nord”, and “gord”
|
[^ ]
|
Match any one character not listed between the brackets
|
grep [^cn]ord sample.txt
|
Will match “lord”, “2ord”, etc. but not “cord” or “nord”
|
|
|
grep [a-zA-Z]ord sample.txt
|
Will match “aord”, “bord”, “Aord”, “Bord”, etc.
|
|
|
grep [^0-9]ord sample.txt
|
Will match “Aord”, “aord”, etc. but not “2ord”, etc.
|
重復操作符
重復操作符,或數量詞,都描述了查找一個特定字符的次數。它們常被用于字符匹配語法以查找多行的字符,可參見表B。
Table B: Regular expression repetition operators
|
操作
|
解釋
|
例子
|
結果
|
?
|
Match any character one time, if it exists
|
egrep “?erd” sample.txt
|
Will match “berd”, “herd”, etc. and “erd”
|
*
|
Match declared element multiple times, if it exists
|
egrep “n.*rd” sample.txt
|
Will match “nerd”, “nrd”, “neard”, etc.
|
+
|
Match declared element one or more times
|
egrep “[n]+erd” sample.txt
|
Will match “nerd”, “nnerd”, etc., but not “erd”
|
{n}
|
Match declared element exactly n times
|
egrep “[a-z]{2}erd” sample.txt
|
Will match “cherd”, “blerd”, etc. but not “nerd”, “erd”, “buzzerd”, etc.
|
{n,}
|
Match declared element at least n times
|
egrep “.{2,}erd” sample.txt
|
Will match “cherd” and “buzzerd”, but not “nerd”
|
{n,N}
|
Match declared element at least n times, but not more than N times
|
egrep “n[e]{1,2}rd” sample.txt
|
Will match “nerd” and “neerd”
|
posted on 2006-10-25 16:58
創建更好的解決方案 閱讀(197)
評論(0) 編輯 收藏 引用