七、正则表达式

七、正则表达式

在进行程序设计的过程中,会不可避免地遇到处理某些文本的情况。有的时候,用户还需要查找符合某些比较复杂规则的字符串。对于这些情况,如果单纯依靠程序设计语言本身,则往往会使得用户通过复杂的代码来实现。但是,如果使用正则表达式,则会以非常简短的代码来完成。

正则表达式是通过一些特殊字符的排列匹配到符合需求的文本内容,可以用linux的文本处理工具命令查看、修改、删除符合正则匹配规则的文本。由于正则表达式语法简练,功能强大,得到了许多程序设计语言的支持,包括python、Java、C++、Perl以及Shell等。

7.1 基本正则表达式

基本正则表达式(Basic Regular Expression,BRE),又称为标准正则表达式,是最早制订的正则表达式规范,仅支持最基本的元字符集。基本正则表达式是POSIX规范制订的两种正则表达式语法标准之一,另外一种语法标准称为扩展正则表达式。

元字符 说明 示例
^ 以某个字符串开头 ^a
$ 以某个字符串结尾 b$
. 匹配任意单个字符 .*
* 对前一项进行0次或者多次重复匹配 a*,.*,0-9a-zA-Z*
\[\] 对方括号内的单字符进行匹配 a-zA-Z0-9\[:space:]
\^ 不匹配方括号内的单字符 ^a-z,^\^a-z
\ 转义字符,让一些特殊符号失效 \.,.*\..*
{m,n} 将前一项重复匹配m-n次 {,n},{m,},{m}
() 定义子表达式的开始和结束位置 正则表达式"(love).*\1"表示匹配2个"love"中间包含任意个字符的文本行,其中"\1"表示引用前面的"love"
\<或\b:锚定词首;\>或者\b:锚定词尾 其后面的任意字符必须作为单词首部出现;其前面的任意字符必须作为单词尾部出现 如 \<love或\blove;如 love\>或love\b

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

正则表达式 描述 示例
:alnum: 匹配任意一个字母或数字字符 \[:alnum:]+
:alpha: 匹配任意一个字母字符(包括大小写字母) \[:alpha:]
:blank: 空格与制表符(横向和纵向) \[:blank:]*
:digit: 匹配任意一个数字字符 \[:digit:]?
:lower: 匹配小写字母 \[:lower:]
:upper: 匹配大写字母 (\[:upper:]+)?
:punct: 匹配标点符号 \[:punct:]
:space: 匹配一个包括换行符、回车等在内的所有空白符 \[:space:]+
:graph: 匹配任何一个可以看得见的且可以打印的字符 \[:graph:]
:xdigit: 任何一个十六进制数(即:0-9,a-f,A-F) \[:xdigit:]+
:cntrl: 任何一个控制字符(ASCII字符集中的前32个字符) \[:cntrl:]
:print: 任何一个可以打印的字符 \[:print:]

7.2 扩展正则表达式

扩展正则表达式(Extended Regular Expression,ERE)支持比基本正则表达式更多的元字符。前面介绍的基本正则表达式元字符在扩展正则表达式都得到了支持,并且其意义和用法都完全相同,不再重复介绍。接下来重点介绍一下在扩展正则表达式中新增加的一些元字符。

元字符 说明 示例
? 将前一项进行0次或者1次的重复匹配 a?,.?,a-z?
+ 将前一项进行1次或者多次的重复匹配 a-z+,.+
(|) 匹配|符号左边或者右边的字符 "(root|student|centos)"
相关推荐
facaixxx20246 分钟前
雨云游戏服务器MCSM面板指南:低延迟BGP线路(一键开服)
运维·服务器·游戏
焦点链创研究所29 分钟前
算力核心机器人将于 7 月 18 日发布
运维·服务器·机器人
dddwjzx38 分钟前
嵌入式Linux C应用编程——GPIO
linux·嵌入式
dddwjzx1 小时前
嵌入式Linux C应用编程——输入设备
linux·嵌入式
爆浇牛肉面1 小时前
Linux三剑客与管道使用全解析:从入门到实战
linux
Starry-sky(jing)1 小时前
如何判断 Windows 是否安装 Node.js:三种方法 + 常见漏判场景
运维·windows·node.js·环境检测
lightqjx1 小时前
【Linux系统】程序地址空间(初识)
linux·页表·地址空间
wljy12 小时前
二、线程操作
linux·线程属性·线程操作
其实防守也摸鱼2 小时前
运维--ip单日获取去重数据量超过500条
运维·学习·tcp/ip·安全·web安全·安全威胁分析·工具
泰和英杰2 小时前
2026 华为数字能源 + 机房工程实操标准:故障排查、机房建设、设备选型标准化技术方案
运维·服务器·网络