正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符(元字符)、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻 辑。其中的元字符不表示字符本身的意义,而是用于表达控制或通配等功能;
对象:字符串
组成:元字符+正常字符
功用:过滤文本字符,查找匹配字符并得出结果,供其它命令使用
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常的强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
grep是基础的正则表达式,命令用于在文件内查找指定的字符串。
全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep[-acinv] [--color=auto] '搜寻字符串' filename
选项与参数:
-v :显示不能够被模式匹配到的行
-E:使用扩展的正则表达式
-i :忽略大小写的不同,所以大小写视为相同
--color=auto :可以将找到的关键词部分加上颜色的显示喔!
-B :附带显示前面两行
-A :附带显示后面两行
-C :附带显示上下两行一起
Linux egrep是扩展的正则表达式,命令用于在文件内查找指定的字符串。
egrep执行效果与"grep-E"相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。
字符匹配
. :匹配任意单个字符
[] :指定集合中的任意单个字符
[^]:匹配指定集合外的任意单个字符
+:匹配前面的字符出现至少1次
匹配次数限定
* :匹配前面任意次,0,1或者多次,前面字符出现与否都匹配
? :匹配其前面的字符0次或1次
{m} :匹配其前面的字符m次
{m,n} :匹配其前面的字符至少m次,至多n次,{m,} 表示至少m,至多不限制,{0,n}表示至少0次,至多n次
.* :匹配任意长度的任意字符
字符锚定
^ :行首锚定,出现最左侧
$ :行尾锚定,出现最右侧
\< :词首锚定,在查找的单词模式的左侧;\<char
\> :词尾锚定,在查找的单词模式的右侧;char\>
\<pattern\>:匹配单词