基础正则表达式

基础正则表达式:元字符意义  BRE (basic regular expression)

正则表达式实际就是一些特殊字符,赋予了它特定的含义。

1)^word            匹配以word开头的内容。vi、vim编辑器里^代表一行的开头

2)word$            匹配以word结尾的内容。vi、vim编辑器里^代表一行的结尾

3) ^$                    表示空行,

4) .                    代表且只能代表任意一个字符。不匹配空行

5) \                       例\.就只代表点本身,转义符号,让有特殊身份意义的字符,脱掉马甲,还原本身

6) *                       重复0个或多个前面的一个字符,例 0* 匹配有任意多个0 的行

7) .*                      匹配所有字符。延伸 ^.* 以任意多个字符开头。 .*$以任意多个而字符结尾

8)[abc]                匹配字符集合内的任意一个字符[a-zA-Z],[0-9]

9)[^abc]              匹配不包含^后的任意一个字符的内容。

中括号里的^为取反,注意和中括号外面以。。。开头区别开来

10) a \{n,m\}      重复n到m次,前一个重复的字符,如果用egrep/sed -r 可以去掉斜线

a\{n,\}       重复至少n次,前一个重复的字符。如果用egrep/ sed -r 可以去掉斜线

a\{n\}        重复n次,前一个重复的字符。如果用egrep/ sed -r 可以去掉斜线

a\{,m\}       重复至多m次

注意:egrep或sed -r  过滤一般特殊字符可以不转义。


正则表达式


描述


示例


\


转义符,将特殊字符进行转义,忽略其特殊意义


a\.b匹配a.b,但不能匹配ajb,.被转义为特殊意义


^


匹配行首,awk中,^则是匹配字符串的开始


^tux匹配以tux开头的行


$


匹配行尾,awk中,$则是匹配字符串的结尾


tux$匹配以tux结尾的行


.


匹配除换行符\n之外的任意单个字符,awk则中可以


ab.匹配abc或bad,不可匹配abcd或abde,只能匹配单字符


[ ]


匹配包含在[字符]之中的任意一个字符


coo[kl]可以匹配cook或cool


[^ ]


匹配[^字符]之外的任意一个字符


123[^45]不可以匹配1234或1235,1236、1237都可以


[ - ]


匹配[]中指定范围内的任意一个字符,要写成递增


[0-9]可以匹配1、2或3等其中任意一个数字


?


匹配之前的项1次或者0次


colou?r可以匹配color或者colour,不能匹配colouur


+


匹配之前的项1次或者多次


sa-6+匹配sa-6、sa-666,不能匹配sa-


*


匹配之前的项0次或者多次


co*l匹配cl、col、cool、coool等


()


匹配表达式,创建一个用于匹配的子串


ma(tri)?匹配max或maxtrix


{ n }


匹配之前的项n次,n是可以为0的正整数


[0-9]{3}匹配任意一个三位数,可以扩展为[0-9][0-9][0-9]


{n,}


之前的项至少需要匹配n次


[0-9]{2,}匹配任意一个两位数或更多位数


{n,m}


指定之前的项至少匹配n次,最多匹配m次,n<=m


[0-9]{2,5}匹配从两位数到五位数之间的任意一个数字


|


交替匹配|两边的任意一项


ab(c|d)匹配abc或abd

POSIX字符类

POSIX字符类是一个形如[:...:]的特殊元序列(meta sequence),他可以用于匹配特定的字符范围。


正则表达式


描述


示例


[:alnum:]


匹配任意一个字母或数字字符


[[:alnum:]]+


[:alpha:]


匹配任意一个字母字符(包括大小写字母)


[[:alpha:]]{4}


[:blank:]


空格与制表符(横向和纵向)


[[:blank:]]*


[:digit:]


匹配任意一个数字字符


[[:digit:]]?


[:lower:]


匹配小写字母


[[:lower:]]{5,}


[:upper:]


匹配大写字母


([[:upper:]]+)?


[:punct:]


匹配标点符号


[[:punct:]]


[:space:]


匹配一个包括换行符、回车等在内的所有空白符


[[:space:]]+


[:graph:]


匹配任何一个可以看得见的且可以打印的字符


[[:graph:]]


[:xdigit:]


任何一个十六进制数(即:0-9,a-f,A-F)


[[:xdigit:]]+


[:cntrl:]


任何一个控制字符(ASCII字符集中的前32个字符)


[[:cntrl:]]


[:print:]


任何一个可以打印的字符


[[:print:]]

元字符

元字符(meta character)是一种Perl风格的正则表达式,只有一部分文本处理工具支持它,并不是所有的文本处理工具都支持。


正则表达式


描述


示例


\b


单词边界


\bcool\b 匹配cool,不匹配coolant


\B


非单词边界


cool\B 匹配coolant,不匹配cool


\d


单个数字字符


b\db 匹配b2b,不匹配bcb


\D


单个非数字字符


b\Db 匹配bcb,不匹配b2b


\w


单个单词字符(字母、数字与_)


\w 匹配1或a,不匹配&


\W


单个非单词字符


\W 匹配&,不匹配1或a


\n


换行符


\n 匹配一个新行


\s


单个空白字符


x\sx 匹配x x,不匹配xx


\S


单个非空白字符


x\S\x 匹配xkx,不匹配xx


\r


回车


\r 匹配回车


\t


横向制表符


\t 匹配一个横向制表符


\v


垂直制表符


\v 匹配一个垂直制表符


\f


换页符


\f 匹配一个换页符

时间: 2024-08-01 12:27:59

基础正则表达式的相关文章

基础正则表达式练习

最近在看马哥视频,做下测试练习备份,练习如下: 练习:1.使用-i忽略大小写,使用^锚定行首. 2.使用$锚定行尾 3.使用[:space:]比空字符各精准,使用\{\}精确匹配次数 4.不知道是不是这个意思,使用了':[0-9]:'就找出来了 5.使用^锚定行首,使用\{\}精确1个或者多个空白字符 6.由于我系统中的/etc/inittab文件不符合,所以自己创建一个文件,内容如下: 如果不加.*匹配,只能搜出66这一行. 基础正则表达式练习,布布扣,bubuko.com

Linux学习笔记:Shell基础正则表达式

Shell中经常用到正则表达式的命令包括grep.sed.awk 用于测试的文件内容 [[email protected] ~]# vi testfile Current Network Status Last Updated: Mon Feb 15 10:55:06 CST 2016 Updated every 90 seconds Nagios Core 4.1.1 - www.nagios.org Logged in as admin I like google It's Google, 

基础正则表达式和fgrep详解

[grep/ egrep] 语法: grep [-cinvABC] 'word'filename -c :打印符合要求的行数 -i :忽略大小写 -n :在输出符合要求的行的同时连同行号一起输出 -v :打印不符合要求的行 -A :后跟一个数字(有无空格都可以),例如 –A2则表示打印符合要求的行以及下面两行 -B :后跟一个数字,例如 –B2 则表示打印符合要求的行以及上面两行 -C :后跟一个数字,例如 –C2 则表示打印符合要求的行以及上下各两行 #grep -A 2 halt /etc/

linux正则表达式之-基础正则表达式(基于grep)

linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或输出需要的字符. 使用正则表达式注意事项: 1.linux正则一般是以行为单位处理的. 2.alias grep='grep --color=auto',讲课是以grep为例.(注意:为了使下面的案例更加清晰明了,在做下面的案例前请先执行此行命令) 3.注意字符集,LC_ALL=C linux里正则

Linux 基础正则表达式

正则表达式: 为何使用正则表达式:帮助我们快速过滤 正则表达式的分类: 基础正则表达式 扩展正则表达式 正则与通配符的区别: 通配符:作用:查找文件 正则:作用:在文件中进行过滤 支持的命令:三剑客:sed,grep,awk,python,java 使用正则表达式注意事项: 1.正则表达式以行为单位处理 2.注意中文符号:系统不识别中文符号 3.grep/egrep 添加别名: cat >>/etc/profile<<EOF alias grep='grep --color=aut

基础正则表达式和扩展正则表达式

基础正则表达式: ^   第1个符号 ,以什么什么开头   ^m $  第2个符号,以什么什么结尾  m$    ,还表示空行,或空格,可以用cat  -An 试一下 ^$ 第3个符号,空行  什么符号都没有 .  第4个符号,表示任意 "一个字符" \  第5个符号, 转义字符不解析特殊符号的含义 ,  \n 相当于回车键 ,  \t  相当于tab键 * 第6个符号,表示前一个字符连续出现了0次或0次以上 .* 第7个符号,表示任意字符,包括空行,正则表达式表示所有或连续出现的.

Linux学习8之Shell编程--基础正则表达式

1. 正则表达式与通配符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配的.grep.awk.sed等命令可以支持正则表达式. 通配符是用来匹配符合条件的文件名,通配符是完全匹配的.ls.find.cp等这些命令不支持正则表达式,所有只能使用Shell自己的通配符来进行匹配. 2. 基础正则表达式 原文地址:https://www.cnblogs.com/anchun7080/p/10311257.html

linux基础正则表达式、shell基础、文件查找和压缩

linux基础正则表达式.shell基础.文件查找和压缩 1.shell编程显示电脑的基本信息,初级基础脚本.只适合6.7版本的. COLOR="\033[1;36m" COLOREND="\033[0m" echo -e "CPU type is $COLOR `lscpu |grep 'Model name'|tr -s ' '|cut -d: -f2`$COLOREND" echo -e "Disk space is $COLOR

shell编程之正则表达式(一)基础正则表达式

正则表达式之前学习了 Shell 脚本的基础用法,已经可以利用条件判断.循环等语句编辑 Shell 脚本.接下来我们将开始介绍一个很重要的概念--正则表达式(RegularExpression,RE).正则表达式的定义正则表达式又称正规表达式.常规表达式.在代码中常简写为 regex.regexp 或 RE.正则表达式是使用单个字符串来描述.匹配一系列符合某个句法规则的字符串,简单来说, 是一种匹配字符串的方法,通过一些特殊符号,实现快速查找.删除.替换某个特定字符串.正则表达式是由普通字符与元