您的位置:首页 > 其它

正则表达式 及grep 小结

2012-06-20 18:18 134 查看
正则表达式 :就是处理字符串的方法,它是以行为为单位来进行字符串的处理行为,通过一些特殊符号的辅助,可以让用户轻易达到查找,删除,替换某特定字符串的处理程序。

正则表达式并不是一个工具程序,而是一种字符串处理的标准依据,只要工具程序支持这种表示法,那么该工具程序就可以用来作为正则表达式的字符串处理之用。

例如 :vi grep awk sed 等工具都支持正则表达式

特殊字符 基本正则表达式 :

.: 匹配任意单个字符
[]: 指定范围内的任意单个字符
[^]:否定符
[:upper:],A-Z [:lower:]a-z, [:digit:]0-9, [:alpha:]a-z A-Z,
[:alnum:]a-z A-Z 0-9,[:space:]空白字符, [:punct:] “ ‘ ?!;:#$
[^[:upper:]] 不是A-Z的
?:匹配其前面的字符0次或1次   需要加\? 才可以使用
+:匹配其前面的字符至少一次
*:匹配其前面的字符任意次
.*:任意长度的任意字符,贪婪模式  最长匹配
X\{m\} 精确匹配X m次
X\{m,n\} 匹配X m到n 次
X\{0,n\} 匹配X最多 n次
X\{m,\} 匹配X最少 m次
^$ :锚定行首 与行尾    ^$合用表示空白行
\< \>:  锚定词首 与词尾  \bWORD\b  同样
\(\):分组  后向引用 \1  ,\2
扩展的正则表达式: 	\(\)-->() 	\{\}-->{} 	+: 次数匹配,匹配其前的字符至少1次; 	|:或者 a|b, (C|c)at: Cat,cat; C,cat
grep :查找文件里符合条件的字符串 文本过滤工具
grep [options ] pattern files
选项         模式     文件
pattern  可以使用 ’‘ 也可以使用 ”“

常用选项:
-n 顺便输出行号
-v :对结果取反
-i :忽略字母大小写
-o :仅显示匹配到的字符串
-E:支持扩展正则表达式
-A n :符合条件的行的后面n行
-B n :符合条件的行的前面n行       -C  n :符合条件的行的前后N行
example :
[code]#grep --color "r.*t" /etc/passwd
root:x:0:0:root:/root:/bin/bash     贪婪匹配
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

# grep --color -o "r.*t" /etc/passwd  -o 显示匹配到的内容
root:x:0:0:root:/root
rator:x:11:0:operator:/root   贪婪匹配
r:/var/ft

# grep --color -o "^r.*t" /etc/passwd  ^ 锚定行首
root:x:0:0:root:/root
rpc:x:32:32:Port

# grep --color -o "\<r.*t\>" /etc/passwd 锚定单词
root:x:0:0:root:/root
root

# echo "abbc ab abc ac " | grep -o "ab\?c" ?需要加\转义一下 匹配 0次或1次
abc
ac
# echo "abbc ab abc ac " | grep -o -E "ab?c" 扩展正则表达式 可以直接使用 abc ac



\2 引用的tty \1引用的是数字

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息