正则表达式及扩展表达式
正则表达式:
在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
正则表达式:基本正则表达式:Basic 基本正则表达式:Basic {n,m}:连续n到m个的“前一个字符”
例:
1.[root@localhost~]#grep'root'/var/log/secure 将/var/log/secure这个文件中有root的那一行显示出来 2.搜索特定字符
[root@localhost~]#grep'root'/etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin 3.反向选择
[root@localhost~]#grep-v'root'/etc/passwd
4.锚定行首 [root@localhost~]#grep'^root'/etc/passwd
root:x:0:0:root:/root:/bin/bash 5.限定连续重复字段范围
假设找到两个o的字符串
[root@localhost~]#grep''o(2)”/etc/passwd 6.显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
grep'^#[[:space:]]{1,}[^[:space:]]'/etc/inittab 7.取出默认shell为/sbin/nologin用户列表
grep'nologin$'/etc/passwd|cut-d:f1
扩展正则表达式:Extended
grep-E=egrp
特殊字符:
+:匹配其前面的字符至少一次
?:“0个或1个”字符
|:用或(or)的方式找出整个字符串
C|cat:C或cat ():找出“用户组”字符串
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符 次数匹配: .*:任意长度的任意字符
?:匹配前面的字符0次或1次
字符集合:
[[:space:]]:表示空白字符
[:punct:]:表示标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
$:锚定行尾,此字符前面的任意内容必须出现在在行尾
^$:空白行
&;或b:锚定词首,其后面的任意字符必须作为单词首部出现
&;或b:锚定词尾,其前面的任意字符必须作为单词尾部出现
&;root&;:必须是单词分组: 如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。 作用同x{m},x{m,},n} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |