正则表达式,又称正规表示法、常规表示法,计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,@L_404_8@有regexp、regex,复数有regexps、regexes、regexen。
注意:grep查找的时候,只要部分匹配就会显示出来,而不是全部匹配才会显示出来,各位看我博客的朋友们,切记切记!O(∩_∩)O 不吝赐教!
元字符:
.:匹配任意单个字符。
例子:# grep '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
匹配次数(默认是贪婪模式,即尽可能的匹配某种模式)
*:匹配其前面的字符任意次。
例子:给定一组:a,b,ab,aab,acb,adb,amnb
匹配模式:a*b(即a出现任意次后面跟个b)
则可以匹配到的是:a,aab
匹配模式:a.*b
则可以匹配到的是:ab,amnb
.*:任意长度的任意字符
例子:给定一组:a,amnb
匹配模式:a.*b
则可以匹配到的是:ab,amnb
?(查找的时候要注意使用转义即:\?):匹配其前面的字符1次或0次。
例子:给定一组:a,amnb
匹配模式:a?b
则可以匹配到的是:b,amnb