常用正则表达式实例讲解

Shell正则表达式

正则表达式:处理大量的字符串而定义的规则和方法,通过规定的符号的组合迅速的找到需要的内容。

注意事项:

1 正表达式的应用广泛,Linux中常用的正则表达式的命令:grep(egrep),sed,awk

2.Linux的正则表达式和命令行中的通配符有本质的区别

Eg:命令行中通配符“*” 表示匹配所有,不同于正则表达式中的 *

]# ll *.sh     #命令行中“*”表示匹配所有

3.文档阅读说明

文中 “]#” 表示在命令行下执行的命令即文中的绿色字体可以复制到命令航中执行

本文以实例讲解,读者可以打开虚拟机,边读边练

基础正则表达式以grep命令讲解

注意事项:

a.linux正则表达式以行为单位处理

b.为了后面便于讲解,给grep取别名,目的是给匹配到的内容带颜色显示,取别名操作如下:

]#  alias grep=‘grep --color=auto’  #只在当前shell生效,如何使永久性的生效在后文有讲解

c.注意字符集,要是grep命令匹配的内容显示异常,需定义字符集:LC_ALL=C

]# LC_ALL=C

辅助文档:

# cat  reTest1

I am wewin not WEWIN

I like linux

I like badminntion ball,billard ball and chinese chess.

number 23000000

number 12000

HAHAHAHAHA

hahahahaha

Linux正则表达式

1)^world   以world开头的行

2)world$  以world结尾的行

3)^$     表示空行

Eg:

]# alias grep=‘grep --color=auto‘  #

]# grep  ‘I’  reTest1  #包含I的行

I am wewin not WEWIN

I like linux

do you like me? but not do you like I

I like badminntion ball,billard ball and chinese chess.

]# grep ‘^I‘  reTest1    # 以 I 开头的行

I am wewin not WEWIN

I like linux

I like badminntion ball,billard ball and chinese chess.

]# grep ‘I$‘ reTest1    #以I结尾的行

do you like me? but not do you like I

]# grep "^$" reTest1  #空行

]# grep -v "^$" reTest1  #排除空行

I am wewin not WEWIN

I like linux

do you like me? but not do you like I

I like badminntion ball,billard ball and chinese chess.

number 23000000

number 12000

HAHAHAHAHA

hahahahaha

4). 代表且只能代表任意一个字符

5)\ 转义字符,有特殊意义的字符表示为普通的意义,还原其原本的意义

6)* 重复一个或多个前面的一个字符,不是通配符中的表示所有的意思

7)+ 前面的元素或者组合必须出现一次或多次,属于扩展的,需要用egrep

8)?规定前面的组合出现零次或一次,

9).* 匹配所有的字符。^.* 以任意多个字符开头

]# grep  "."  reTest1  #匹配全文,但是中间的空行会消失,要是只是单纯的匹配字符 “.” 需要转义

I am wewin not WEWIN

I like linux

do you like me? but not do you like I

I like badminntion ball,billard ball and chinese chess.

number 23000000

number 12000

HAHAHAHAHA

hahahahaha

]# grep "\." reTest1    #匹配包含“.”的行,需要脱去特殊含义。

I like badminntion ball,billard ball and chinese chess.

]# grep "0*" reTest2  #包含一个或多个0

I am wewin not WEWIN

I like linux

do you like me? but not do you like I

I like badminntion ball,billard ball and chinese chess.

number 23000000

number 12000

HAHAHAHAHA

hahahahaha

10)[a-z] #匹配a-z字符集合内任意一个字符集

]# grep [a-z] reTest1

I am wewin not WEWIN

I like linux

do you like me? but not do you like I

I like badminntion ball,billard ball and chinese chess.

number 23000000

number 12000

hahahahaha

11)[asdfds]    #统配a-z的任意一字符集

]# grep [asdfds] reTest1

I am wewin not WEWIN

do you like me? but not do you like I

I like badminntion ball,billard ball and chinese chess.

hahahahaha

]# grep [^a-z] reTest1  #匹配包含除过a-z字符的行,

I am wewin not WEWIN

I like linux

do you like me? but not do you like I

I like badminntion ball,billard ball and chinese chess.

number 23000000

number 12000

HAHAHAHAHA

13)^[abc]   以[a-z]开头的行

]# grep ^[a-z] reTest1

do you like me? but not do you like I

number 23000000

number 12000

hahahahaha

14){n,m} 重复n到m次,前一个字符

15){n,}至少n次多了不限

16){n} n次

17){,m}至多m次,少了不限

注意:grep要对{转义},\{ \{ 要是用egrep就不需要转义 egrep相当于grep -E

]# grep "0\{3\}" reTest1   #0连续出现3次

]# grep  -E "0\{3\}" reTest1

]# grep "0\{,5\}" reTest1  #0出现0-5次

有报错,内在的bug,可以用grep "0\{0,5\}",两个属于等价的查询

18)\d 匹配任意一个数字字符,等效于 [0-9]

19)\D 匹配任意一个非数字字符,等效于 [^0-9]

20)\s 匹配任何空白字符,包括空格、制表符、换页符等,等效于[ \f\n\r\t\v]。

21)\S 匹配任何非空白字符,为\s的逆运算,等效于 [^ \f\n\r\t\v]。

22)\w 匹配任何英文字母和数字类字符以及下划线。等效于[A-Za-z0-9_]。

23)\W 匹配任何非英文字母和数字类字符,但不包括下划线。为\w的逆运算,等效于[^A-Za-z0-9_]。

时间: 2024-08-08 01:02:17

常用正则表达式实例讲解的相关文章

mysql命令常用参数实例讲解

mysql命令常用参数实例讲解 以下是mysql命令常用的参数,配合实例进行简单讲解 1,auto-rehash自动补全(表名及表中字段) --------------------------------------- [mysql] #no-auto-rehash auto-rehash --------------------------------------- mysql -u root --auto-rehash ------------------------------------

常用正则表达式实例

1.选中被逗号(或其他符号)分割的字符串当中的某一个值 69,23,69,88,695,69,69,6,765769fd969690,3242,969,69 实例,选中以上字符串所有出现的69部分 (\b69\b[,]?)|([,]?\b69\b) javascript var val = "69"; var exp  = new RegExp("(\\b"+val+"\\b[,]?)|([,]?\\b"+val+"\\b)"

mysqladmin命令常用参数实例讲解

mysqladmin 工具的使用格式: mysqladmin [option] command [command option] command ...... 参数选项: -c number 自动运行次数统计,必须和 -i 一起使用 -i number 间隔多长时间重复执行 0)每个两秒查看一次服务器的状态,总共重复5次. [[email protected] ~]# mysqladmin -uroot -p -i 2 -c 5 status 1)查看服务器的状况:status [[email 

RelativeLayout常用属性介绍及实例讲解

RelativeLayout是一种相对布局,控件的位置是按照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最常用,也是最灵活的一种布局.下边来看一下他的常用属性 这里将这些属性分成组,便于理解和记忆. a).第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 an

[转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)

https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 我之前想总结 一直懒 这次国庆加班 也本来计划来着 感冒了 作罢 .. 作者:蓝藻(罗蓝国度) 创建时间:2018.7.3编辑时间:2019.7.16 前言 本文特点 授之以渔:了解命令学习方法.用途:不再死记硬背,拒绝漫无目的: 准确无误:所有命令执行通过(环境为centos7),拒绝复制粘贴: 实用性高:命令多为实际工作中用到的,实例讲解,拒绝纯理论: 条理清晰:分类归纳,快速找到想要的命

spring常用注解使用讲解

spring常用注解使用讲解 本文讲述spring的几个常用的注解 @RequestMapping @RequestParam @ResponseBody @RequestBody @Autowired 一.@RequestMapping  RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestMapping注解有六个属性,下面我们把她分成三类进行说明. 1. value, method: v

[python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】

[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pythonpython爬虫正则表达式html知识总结 2016-04-07 06:13 3615人阅读 评论(4) 收藏 举报  分类: Python爬虫(23)  Python基础知识(17)  版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ 这篇文章主要是介绍Pytho

实例讲解Linux系统中硬链接与软链接的创建

导读 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接.硬链接与软链接的区别从根本上要从Inode节点说起,下面就以实例讲解Linux系统中硬链接与软链接的创建,来实际看看Linux中两种链接方式的不同. 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现

常用正则表达式—邮箱(Email)

常用正则表达式-邮箱(Email) ?本文针对有一点正则基础的同学,如果你对正则一无所知,请移步"正则表达式30分钟入门教程"学习. ?要验证一个字符串是否为邮箱的话,首先要了解邮箱账号的格式.我尝试过在网上找出一个标准的格式,但是很遗憾我没有找到.我也尝试使用RFC标准来判断邮箱的格式,但是也没有结果.网上些博客说不应该使用RFC标准来验证邮箱是否合法,有兴趣的可以看看"is this email valid?"和"Don't RFC-Validate