关于正则表达式第四篇

正则表达式,林林总总说了几篇,还是有不少的内容需要补充。
-->星号
字符出现0次或者多次
$ echo "ik"|sed -n '/e*/p'
ik
$ echo "ieek"|sed -n '/e*/p'
ieek
$ echo "This is a color TV"|sed -n '/colou*r/p'  --colour中的u可以出现0次或者多次。出现0次的时候color就符合条件
This is a color TV
$ echo "This is a colour TV"|sed -n '/colou*r/p'   --colour中的u可以出现0次或者多次。出现1次的时候colour就符合条件
This is a colour TV

-->星号+点字符
星号和点字符的结合

$ echo "This is a nice hat"|sed -n '/a.*hat/p' 
This is a nice hat

-->星号+字符组
$ cat c.txt
bt
bat
bet
btt
batt
baaeeat
bakeat
$ sed -n '/b[ae]*t/p' c.txt
bt
bat
bet
btt
batt
baaeeat

扩展表达式有以下几种,在linux中对于grep,awk都是支持的。
问号
花括号
管道符号
聚合表达式

-->问号
字符出现0次或者1次
$ cat c.txt
bt
bat
bet
btt
batt
baaeeat
bakeat

$ sed -n '/b[ae]*t/p' c.txt
bt
bat
bet
btt
batt
Baaeeat
$ awk '/b[ae]?t/{print $0}' c.txt  --匹配0次或者1次的时候,Baaeeat 怎么也匹配不到[ae]相关的组合。
bt
bat
bet
btt
batt

-->加号
字符出现1次或者多次,这个和问号有些类似。但是对于出现的频率会有不同。问号是0次或者一次,星号是0次或者多次。
$ awk '/b[ae]+t/{print $0}' c.txt
bat
bet
batt
baaeeat

-->花括号
m     正则表达式准确出现m次
m,n 正则表达式至少出现m次,至多n次
默认awk不会识别正则表达式区间,需要指定--re-interval  选项

$ echo "bat"|awk '/b[ae]{1}t/{print $0}'
echo "bat"|awk --re-interval '/b[ae]{1}t/{print $0}'
 bat

$ cat c.txt
bt
bat
bet
btt
batt
baaeeat
bakeat
$ awk --re-interval '/b[ae]{1,2}t/{print $0}' c.txt
bat
bet
batt

$ cat d.txt
the cat is asleep
the dog is asleep
the sheep is asleep
$ awk '/cat|dog/{print $0}' d.txt
the cat is asleep
the dog is asleep

-->聚合表达式
$ echo "Sat"|awk '/Sat(urday)?$/{print $0}'
Sat
$ echo "Satx"|awk '/Sat(urday)?$/{print $0}'
$ echo "Saturday"|awk '/Sat(urday)?$/{print $0}'
Saturday
$ echo "Saturdayurday"|awk '/Sat(urday)?$/{print $0}'
 $ echo "cat"|awk '/(c|b)a(b|t)/{print $0}'
cat
 $ echo "tab"|awk '/(c|b)a(b|t)/{print $0}‘
 $ echo "tac"|awk '/(c|b)a(b|t)/{print $0}'

时间: 2024-10-02 11:12:06

关于正则表达式第四篇的相关文章

如何高效运作机器学习团队(机器学习入门第四篇)

本文是机器学习入门教程的第四篇,前三篇分别是: 1.机器学习能为你的业务做什么?有些事情你肯定猜不到 2.关于机器学习算法 你需要了解的东西 3.如何开发机器学习模型? 我们已经讨论了开发机器学习模型的整个过程,现在我们来谈谈谁来实现这个过程,以及团队是如何运作的. 一个欢乐的大家庭 一个"传统"的产品团队由设计师.工程师和产品经理组成,而数据分析师有时也会包含在其中,但大多数情况下是多个团队共享这个稀缺的资源.在数据科学成为公司DNA一部分的时候,数据科学家必须要成为产品团队的一个重

解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译)

原文:解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译) 解剖SQLSERVER 第十四篇    Vardecimals 存储格式揭秘(译) http://improve.dk/how-are-vardecimals-stored/ 在这篇文章,我将深入研究vardecimals 是怎麽存储在磁盘上的. 作为一般的介绍vardecimals 是怎样的,什么时候应该使用,怎样使用,参考这篇文章   vardecimal 存储格式启用了吗? 首先,我们需要看一下vardec

14天发文四篇谈人民币汇率央行副行长称应坚持汇改

胡晓炼 本报讯 央行副行长胡晓炼周三在央行网站上撰文表示,汇率机制改革和生产要素价格调整可并行不悖,进一步增加人民币汇率弹性,有利于为生产要素价格改革创造稳定的低通胀环境. 文章分析了汇率和价格这两项改革对通胀的不同影响.具体而言:生产要素价格上调将直接增加通胀压力.如果人民币汇率在市场供求作用下有所升值,将直接降低进口商品的本币价格,且通过促进国际收支平衡.减少基础货币被动投放,减少通胀压力. 2005年7月21日中国央行宣布实施人民币汇率改革,时值汇改五周年之际,胡晓炼以央行副行长身份在14

第四篇Bootstrap网格系统偏移列和嵌套列_javascript技巧

偏移列: 在bootstrap网格系统中我们可以使用偏移列来达到让某列右移的效果,如下所示: <div> <div>col2</div> </div> Class="col-sm-2 col-sm-offset-1"表示该列占两份,并且往右移动一份,看到的效果如下: Col-sm-offset-1表示右移一份.Col-sm-offset-2表示右移两份依次类推.Col-xs类不支持偏移列,但是它可以通过简单的使用一个空的单元格来达到效果.

学习动态性能表 第四篇-(1)-V$SQLTEXT

  学习动态性能表 第四篇-(1)-V$SQLTEXT  本视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内. 注:V$SQLAREA只包括头1000个字符. V$SQLTEXT中的常用列 l         HASH_VALUE:SQL语句的Hash值 l         ADDRESS:sql语句在SGA中的地址 l         SQL_TEXT:SQL文本. l         PIECE:SQL语句块的序号 V$SQLTEXT中的连

第四篇 ASP脚本基础

通过前两篇的学习,相信各位已经对 ASP 的动态网站设计有了一个基本的概念和整体的印象.从本篇开始作者将从脚本语言的使用着手,由浅入深地带领大家探索 ASP 动态网站设计的真正奥秘. 本文第二篇刊登后,很多朋友给我发了"妹儿",希望能尽快看到本文的第三.第四.乃至第--篇,甚至有位朋友焦急地要我将 ASP 篇的全文发给他.看到有如此之多志同道合的朋友,令我精神大振.虽然 ASP 早在两年前就已经推出了,但直到今年它才以其灵活便捷的开发过程.良好的 WEB 数据库连接功能受到了国人的重视

第十四篇 ActiveX 组件

当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX 组件来强大 Web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作等等,本文从本篇开始将陆续给大家介绍 ASP ActiveX 组件的使用方法. 从今天开始我们将正式学习 ASP 的精华部分 --ActiveX 组件.事实上,当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX 组件来强大 Web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作或者对 WEB 服务器上的文件系统进行操作,亦或

ASP教程:第十四篇 ActiveX 组件

 当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX 组件来强大 Web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作等等,本文从本篇开始将陆续给大家介绍 ASP ActiveX 组件的使用方法. 从今天开始我们将正式学习 ASP 的精华部分 --ActiveX 组件.事实上,当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX 组件来强大 Web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作或者对 WEB 服务器上的文件系统进行操作,亦

android emulator虚拟设备分析第四篇之framebuffer

一.概述 framebuffer是啥就不用详细说了吧,需要注意的是android emulator的framebuffer貌似用处不大,因为我之前用android emulator运行x86镜像时,可能是分辨率选得太大了,/dev/graphics/fb0文件都没有产生,系统却可以正常跑,因为系统用的是DRM方式. 另外,GOLDFISH-VIRTUAL-HARDWARE.TXT说了 IMPORTANT NOTE: When GPU emulation is enabled, the frame