字符匹配
正则表达式的关键之处在于确定你要搜索匹配的东西,如果没有这一概念,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
创建更好的解决方案 阅读(192)
评论(0) 编辑 收藏 引用