正则表达式

1.基本概念

正则表达式是通过一些特殊字符的排列,用以查找、替换、删除一行或多行文字字符串。简单的说,正则表达式就是处理字符串的方法,是以行为单位来进行字符串的处理行为。

2.语系对正则表达式的影响

举个例子,在英文大小写的编码顺序中,zh_CN.big5及C这两种语系的输出结果分别入下:
LANG=C: 0 1 2 3 4……A B C……a b c……z
LANG=zh_CN: 0 1 2 3 4……a A b B……z Z
所以,在使用正则表达式时,需要注意当时环境的语系是什么,否则会影响选取结果。
下面介绍一些特殊符号和其的含义:
这里写图片描述
3.grep的一些高级参数

grep [-A] [-B] [–color=auto] ‘搜索字符串’ filename
参数:
-A:后面可加数字,除了列出该行外,后序的n行业列出来
-B:前面可加数字,除了列出该行外,前面的n行业列出来
–color=auto可将正确的那个选取数据列出颜色

4.基础正则表达式常见例题

例题1:查找特定字符串
查找特定字符串(含有’the’这个特定的字符串)
这里写图片描述
查找不含该字符串
这里写图片描述
不管大小写
这里写图片描述
例题2:利用[]查找集合字符
test与taste两个单词有共同点是,都含有’t?st’
这里写图片描述
查找含oo的字符,但前边的字符不为a~z中的字符
这里写图片描述
要求字符串是数字,注意连续编码使用的是’-‘号
这里写图片描述
也可以利用特殊符号
这里写图片描述
例题3:行首与行尾字符^$
当我们需要查询的字符只在行首列出,这个时候就需要制表符了
这里写图片描述
查找第一个字符以a~z打头的
这里写图片描述
查找第一个字符是大写的
这里写图片描述
查找第一个字符是小写的
这里写图片描述
开头不是英文字母的
这里写图片描述
总结:^在字符集合符号[]之内和之外是不同的,在[]之内表示反向选择,在[]之外表示定位在行首。
行尾结束为小数点.的那一行
这里写图片描述
注意到小数点具有其他的意义,所以使用转义字符\来解除特殊意义
空白行的查找
这里写图片描述
例题4:任意一个字符.与重复字符
.(小数点):一定有一个任意字符
*(星号):重复前一个0到无穷多次,为组合形态
查找g??d的字符串
这里写图片描述
o*代表具有空字符串或一个o以上的字符,则会将所有的结果打印出来
oo*代表第一个o必须存在,第二个o可有可无
ooo*查找含有至少两个以上oo的字符串
这里写图片描述
查找字符串开头和结尾都是g,但是两个g之间至少有一个o
这里写图片描述
查找以g开头和结尾的字符串所在的行,但中间的字符可有可无
这里写图片描述
例题5:限定连续RE字符范围{}
{}在shell中有特殊意义,我们需要用转义字符来让它失去特殊意义
查找两个o的字符串
这里写图片描述
5.基础正则表达式字符

这里写图片描述

6.sed工具

基本语法:
sed [-n/e/f/r] [动作]
参数:
-n:使用安静模式
-e:直接在命令模式上进行 sed 动作编辑
-f:直接将 sed 的动作写在一个文件内,-f filename 则可以执行 filename 内的 sed 动作
-r: sed 动作支持的是扩展型正则表达式的语法
-i:直接修改读取的文件内容,而不是由屏幕输出
动作说明: [n1,[n2]]function
n1,n2:可能存在,一般代表选择进行动作的行数,举个例子,如果我的动作是需要在1行到3行之间进行的,则“1,3[动作行为]”
function的参数说明:
a:新增,a的后可以接字符串,而这些字符串会在新的一行出现
c:替换,c的后面可以接字符串,这些字符串可以替换n1,n2之间的行
d:删除,d后边不需要接任何参数
i:插入,i的后面可以接字符串,而这些字符串会在新的一行出现
p:打印,将某个选择的数据打印出来,
s:替换,可以直接进行替换工作

7.扩展正则表达式

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值