加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式元字符

发布时间:2020-12-13 19:38:10 所属栏目:百科 来源:网络整理
导读:正则表达式概述 是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多 文本编辑器 或其他工具里,正则表达式通常被用来检索和 / 或替换那些符合某个模式的文本内容。许多 程序设计语言 都 支持利用正则表达式进行字符串操作。例如,




正则表达式概述

是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如 sedgrep)普及开的。正则表达式通常缩写成“regex”


PCRE正则库

(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写。PCRE是一个轻量级的函数库,PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库


开启pcre posix正则表达式支持,常用的有这三个指令grep,sed,awk

1grep ?P =grep ?E = egrep

2sed ?r

3awk --posix


元字符

元字符

功能

示例

匹配对象

^

行首定位符

'^love'

匹配所有以love开关的行

$

行尾定位符

'love$'

结尾的行

[]

匹配一组字符中的一个字符

'[Ll]'ove

匹配loveLove的行

[^]

匹配不在一组字符中的一个字符

'[^A-Z]ove'

匹配一个不在AZ之间的字符,并且该字符紧跟着是ove的行

.

匹配一个字符

'l..e'

匹配包含一个l,后跟两个字符,再跟一个e的行

x{m}

字符x的重复m

'o{5}'

匹配连续出现5o的行

x{m,}

至少重复m

'o{5,}'

匹配连续出现至少5

至少m,sans-serif">但不能超过n

'o{5,10}'

o,sans-serif">但不能超过10的行

aa|bb

匹配aabb

love|hate

hate这两个字符串之一

()

字符组

love(able|ly)(ov){1,}

匹配loveablelovely并且紧跟在其后ov的一次或多次出现.

并且将()中的内容放在寄存器中最左侧第一个叫做1,sans-serif">后续再引用这个存在器中的内容可以使用1,sans-serif">最多可以用9个寄存器1 2 ….9.

*

匹配零个或多个前一个字符

' *love'

匹配包含零个或多个空格后有love的行





练习素材

[work@3server shell]$ cat datafile.txt

northwest NW Charles Main 3.0 .98 3 34

western WE Sharon Gray 5.3 .97 5 23

southwest SW Lewis Dalsass 2.7 .8 2 18

southern SO Suan Chin 5.1 .95 4 15

southeast SE Patricia Hemenway 4.0 .7 4 17

eastern EA TB Savage 4.4 .84 5 20

northeast NE AM Main Jr. 5.1 94 3 13

north NO Margot Weber 4.5 .89 5 9

central CT Ann Stephens 5.7 .94 5 13






正则表达式练习


范例1



范例2



范例3



范例4





范例5


范例6



范例7












范例8



范例9



范例10



范例11




范例12
















范例13








范例14


范例15




范例16


范例17


范例18







范例19 grep ?P = grep ?E = egrep


























范例20 (这个例子先了解一下即可,后续再学sed,awk)





(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读