*基础正则表达式:basic regular expression BRE
包括:^ $ . [] [^]
和扩展正则不同的是grep和sed不需要加参数也可以使用

  • ^
    ^d 以d开头的行,例如:ls l|grep "^d" 给三剑客使用
    只查看以d开头的行,正则表达式的意思为,以.....开头,^d就是以d开头
    [root@yxd data]# grep '^m' oldboy.txt 以m开头的行
    my qq is 49000448
  • $
    以什么什么结尾的行,例如
    grep "m$" yxd.txt 就是以m结尾的行
    [root@yxd data]# grep 'm$' oldboy.txt 如果m后边有空格就是空格结尾,查找不到
  • ^$
    表示空行,什么符号都没有,例如
    grep -n "^$" yxd.txt 因为空格不好显示,加行号可以看出来一般用-v排除
  • .
    代表任意一个字符,文本,符号。不匹配空格,
    grep '.' yxd.txt一个字符一个字符查找,可配合grep -o 查看匹配过程
    也可以在字符中代替任意一个字符,模糊查找。
    例如:grep "ol.y" oldy.txt
    I am oldboy teacher!
    my god ,i am not olbey
    或者查看全部内容grep "." oldboy.txt 表示查找全部字符,不包括空行
    查找以点结尾的内容grep ".$" oldboy用\还原属性
  • *
    前一个文本或字符连续出现0次或0次以上.
    例如 grep '0' yxd.txt 会把所有文件显示,代表0出现0次或者0次以上,要找0所在的行命令为
    grep '0 ' yxd.txt 0后加空格
    grep -o 'bl ' oldboy.txt查找bl 前一个字符显示零次,所以星号前相当于出现0次,代表出现0次就是没有
    [root@yxd data]# grep -o 'bl ' oldboy.txt
    bl
    bl
    bl
    grep -o 'bl' oldboy.txt
    b
    b
    bl
    b
    bl
    bl
    grep "god" a.log 代表o出现0次或者多次
    good
    gd
    god
    goood 查找go开头的o出现0次或者多次,"god"=gd的原因为"go{0}d"代表o出现0次,什么也没有,所以有gd
  • .
    重复前边的任意一个符号,也就是所有文本字符,包括空行
    以任意符号开头一直到字母o
    grep '^.o' yxd.txt
    [root@yxd data]# grep '^.o' oldboy.txt
    I am oldboy teacher!
    一直到一行最后一个o才结束,贪婪性.所有符号,任何符号,连续出现的字符,有多少匹配多少
    找出以m开头,以m结尾的行
    grep '^m.m$' oldboy.txt
  • \
    转义字符,符号,让有特殊意义的符号回归原型,例如:.就表示点

    例如:找出以点结尾的行
    grep '.$' oldboy.txt
    19.3.7.2 \n
    表示回车
    19.3.8 [ ]

[]在双引号中,如果[]中是特殊字符会有特殊含义,单引号看做普通单位.双引号中的[]里是正则也不会特殊处理br/>正则表达式认为[]里的内容都是相同的[@#$]这里认为@#$为相同符号,加上+合成一个整体例如,不加+号视为[]中只匹配一个字符
[root@yxd ~]# echo '#@$#1$$#@$$$2@@@##$$@@' |egrep -o '[$#@]+'br/>#@$#
$$#@$$$
@@@##$$@@ 1没有中断再到2中断
匹配所有一个字符 grep [abc] yxd.txt 表示查找a或者b或者c [a-z]表示a到z 全部小写字母等[a-Z]大小写
[a-zA-Z0-9],单引号中的[]中的内容没有特殊含义,是一个字符
[root@yxd data]# egrep '[0-9]{3,}' oldboy.txt -o
49000448
4900000448
19.3.8.1 [^]
表示排除显示,例如:grep '[^mno]' oldboy.txt,查找除了m或n或o的内容,根据字母的,放前边是取反,放后边查找^例如[mn^]
19.3.8.2 ^[]
以括号里的开头,例如:grep ^[mno] yxd.txt 以m或以n或以o开头的行
19.3.8.3 找以小写字母开头,.!结尾
[root@yxd data]# grep '^[a-z].[.!]$' oldboy.txt
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
19.3.8.4 不以mn开头
grep '^[^mn]' oldboy.txxt
grep -v '^[mn]' oldboy.txt
sed -n '/^[^mn]/p' oldboy.txt
awk '/^[^mn]/' oldboy.txt
19.4 扩展正则表达式:
需要用egrep或者grep -E
extended regular expression ERE
包括: | + () {} ?

  • +
    前一个字符连续出现1次或一次以上,排查时只显示字母所在的一行。
    egrep 'a+' yxd.txt和不同的是 只显示带有a的一行
    例如:grep -E '[a-z]+' oldboy.txt或者grep '[a-z]+' oldboy.txt取出文件中连续小写的行,加了+就不是一个字符一个字符找,一个单词一个单词找。
    可以把连续出现的东西连成一个整体
    ifconfig eth0|awk 'NR==2'|awk -F '[ :]+' '{print $4}' +号代表文件多个空格化为连续的一个空格
    [root@yxd data]# grep -E '[a-z]+' oldboy.txt -o
    am
    oldboy
    teacher
    teach 不加+就是一个字符一个字符匹配,加了是匹配到结束为止,也就是空格或者符号中断,接着匹配
    一般和[]配合使用,取出连续的字符
  • |
    或者的意思egrep "100|200" /etc/services grep需要加e进化才能用
  • ()
    表示一个整体。egrep 'oldb(o|e)y' oldboy 表示的为oldboy|oldbey
    常用于反向引用/后向引用(sed常用)
    例如:echo 123456|sed -r 's#(.)#<\1>#g'
    <123456> 引用括号里的内容,防在后边使用\1表示括起来的第一个内容
    echo 123456|sed -r 's#(34)#<\1>#g' 只引用34
    echo 123456|sed -r 's#(.).(..).(.)#<\2>#g'
    这里的\2表示括起来的第几个,引用第几个括号里的内容。
    可以\2\3表示使用引用的第2块和第3块
    反向引用增加内容
    也可以增加内容
    [root@yxd ~]# find /root/ -type f -name 'yxd.txt'|xargs sed -ri 's#(.)#www.\1.org#g'
    [root@yxd ~]# cat yxd.txt
    www.yxd.org
    www.yxd.org
    www.yx.org
    www.yxd.org
  • ?
    表示重复前一个字符0次或者1次
    例如egrep "go?d" a.log
    gd
    god
    用+号就是egrep "go+d" a.log
    good
    god
    goood
    用就是 grep "god" a.log
    good
    gd
    god
    goood
    19.4.5 {}
    自定义次数或前一个字符重复几次到几次,例如'wq{1,3}'代表q这个字符重复1次至3次,包括2次
    前一个字符连续出现最少几次,最多几次,
    例如:0{n,m} 前一个字符至少连续出现n次,最多连续出现了m次
    0{n} 前一个字符连续出现n次
    0{n,} 前一个字符至少连续出现n次
    0{,m} 前一个字符最多连续出现了m次

  • 前一个字符重复几次

前一个字符重复0次或0次以上
+
前一个字符重复1次或1次以上,可以把连续出现的东西连成一个整体

前一个字符重复0次或1次
{}
自定义几次或前一个字符重复几次到几次,例如:'weeq{1,3}'q重复1次至3次
*

转载于:https://blog.51cto.com/12928749/2059863

基础正则和扩展正则的作用相关推荐

  1. awk,sed,grep运用正则与扩展正则

    1.正则与扩展正则的概述 2.示例 grep 过滤工具 ---格式:grep [选项] "正则表达式" 文件 egrep 过滤工具 ---格式:egrep [选项] "扩 ...

  2. python正则_Python基础12之Python正则

    上图施工计划,已完成专题: 1.数字专题 2.字符串专题 3.列表专题 4.流程控制专题 5.编程风格专题 6.函数使用专题 7.面向对象编程(上篇) 8.面向对象编程(下篇) 9.Python基础9 ...

  3. php正则匹配sg-nc-wap_php正则匹配

    概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配.替换.截取匹配的字符串.常用的语言基本上都有正则表达式,如JavaScript.java等.其实,只有了解一种语言的正 ...

  4. 融合一致性正则与流形正则的半监督深度学习算法

    融合一致性正则与流形正则的半监督深度学习算法 王杰1,2, 张松岩1,2, 梁吉业1,2 1山西大学计算机与信息技术学院 2计算智能与中文信息处理教育部重点实验室 摘要:半监督学习已被广泛应用于大数据 ...

  5. ES6基础3(扩展)-学习笔记

    文章目录 ES6基础3(扩展)-学习笔记 字符串扩展 数值扩展 函数扩展 扩展运算符 ES6基础3(扩展)-学习笔记 字符串扩展 //扩展//字符串扩展charAt(); //返回指定索引位置的字符 ...

  6. 【编译原理】正则文法与正则式的等价性

    正则文法到正规式的转换规则: 文法表达式 正则式 规则1 A->xB B->y A=xy 规则2 A->xA|y A=x*y 规则3 A->x A->y A=x|y 正则 ...

  7. L1正则和L2正则的比较分析

    参考文献 1.L1正则和L2正则的比较分析详解 2.比较全面的L1和L2正则化的解释 3.正则化项L1和L2的区别 4.L1 相比于 L2 为什么容易获得稀疏解? 5.正则化L1和L2的区别 6.LR ...

  8. 密码基础知识——密码的概念与作用

    密码基础知识--密码的概念与作用 密码的概念与作用 密码的概念 密码的重要作用 密码的功能 密码应用技术框架 密码应用中的安全性问题 密码应用安全性评估的基本原理 信息安全管理标准 PDCA 管理循环 ...

  9. 正则环视 php,正则基础之 环视 Lookaround

    1       环视基础 环视只进行子表达式的匹配,不占有字符,匹配到的内容不保存到最终的匹配结果,是零宽度的.环视匹配的最终结果就是一个位置. 环视的作用相当于对所在位置加了一个附加条件,只有满足这 ...

最新文章

  1. DevDays2012 开发者日中文版资料下载
  2. java对象头_浅谈java对象结构 对象头 Markword
  3. python绘图教程_pyplot绘图教程
  4. 重视B/S架构系统的发展和开发设计理念
  5. python怎么复制上面的语句_JAVA、python、Go的复制语句
  6. python cook读书笔记第2章字符串和文本
  7. linux date修改系统时间
  8. 贪心法——最优装载问题
  9. 7-3 对整型数据排序 (15 分)
  10. 天律的云端大数据分析挖掘之旅
  11. ORA-01658: 无法为表空间中段创建 INITIAL 区
  12. Ableton Live 11 Suite for Mac(数字音乐音频制作软件)
  13. (好文章搬个砖)MySQL索引背后的数据结构及算法原理
  14. ms17-010 php版本,HOWTO: 解决 MS17-010 安全更新安装失败的故障问题
  15. mysql时区重启后失效_mysql时区问题
  16. johnny仔向您推荐的三个专业微信交流QQ群,欢迎加入!
  17. Mac电脑如何通过awifi免费上网
  18. python字体大小快捷键_PyCharm(2019.1版本)用鼠标滚轮控制放大缩小字体
  19. 《青 春》 塞缪尔 厄尔曼
  20. 远景能源电话面试总结

热门文章

  1. unity打开一片黑_黑花儿和白花儿——记我家的两只猫星人
  2. linux 云主机安装方法,虚拟主机linux服务器安装教程
  3. tcxgrid主从结构显示多行_快速跟随型主从结构多电机同步控制
  4. utf8转gb2312 c语言,UTF-8, Unicode, GB2312格式串转换之C语言版
  5. pytorch 数据类型
  6. vscode remote免密登录
  7. hadoop linux 集群提交任务
  8. pytorch transformers
  9. opencv-api minAreaRect
  10. d3 选择元素 api