0

0

学编程,怎么能不懂正则表达式!

雪夜

雪夜

发布时间:2025-07-21 11:04:30

|

714人浏览过

|

来源于php中文网

原创

在数学领域,表达式由数字、运算符、括号和变量构成。通过变量的使用,我们能够对数值信息进行批量计算,从而高效地完成各种计算任务。同样地,在处理文本信息时,我们也需要借助表达式和特殊符号,这些特殊符号在文本处理中扮演着变量的角色。这种表达式被称为正则表达式。正则表达式在多个计算机语言中都有广泛应用,本文将重点介绍在bash中使用正则表达式的方法。

正则表达式,也被称为规则表达式(Regular Expression, RE),利用特定字符的排列来查找、替换、删除符合特定模式(规则)的文本,是文本文件字符串处理的标准依据(需注意与通配符区分,通配符主要用于文件管理)。许多工具命令和软件都支持正则表达式,例如vim、grep、sed和awk等。此外,许多编程语言也支持使用正则表达式进行字符串操作,例如Perl语言内置了一个强大的正则表达式引擎。因此,正则表达式在处理文本数据时具有重要作用。

接下来,我们将逐步学习使用grep来掌握常用正则表达式的用法(一般使用LANG=C)。可以使用以下命令获取练习数据:

wget http://linux.vbird.org/linux_basic/0330regularex/regular_express.txt
sed -i 's/^M//' regular_express.txt
#注意,上面命令中的^M输入方法为先Ctrl+V后Ctrl+M

该文件内容如下所示:

"Open Source" is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
this dress doesn't fit me.
However, this dress is about $ 3183 dollars.
GNU is free air not free beer.
Her hair is very beauty.
I can't finish the test.
Oh! The soup taste good.
motorcycle is cheap than car.
This window is clear.
the symbol '*' is represented as start.
Oh!  My god!
The gd software is a library for drafting programs.
You are the best is mean you are the no. 1.
The world  is the same with "glad".
I like dog.
google is the best tools for search keyword.
goooooogle yes!
go! go! Let's go.
# I am VBird

⑴集合字符[]

在高级搜索中,常用中括号[]来集合字符。例如,如果想同时搜索test和taste这两个关键词,可以使用t[ae]st:

学编程,怎么能不懂正则表达式!

搜索含有oo但前面不是g(即去除goo)的行:

学编程,怎么能不懂正则表达式!

搜索含有oo但前面不是小写字母的行:

学编程,怎么能不懂正则表达式!

在正则表达式中,所有连续的字符组均可以这样表达,例如[a-z]、[A-Z]、[0-9]。如果不在C语系中,可以使用[:lower:]、[:upper:]、[:digit:]分别代表小写字母、大写字母、数字:

学编程,怎么能不懂正则表达式!

⑵行首行尾字符^$

字符^可以限定行首,而$可以限定行尾。例如,要筛选行首为the的行(忽略大小写):

学编程,怎么能不懂正则表达式!

筛选行首不是字母的行:

学编程,怎么能不懂正则表达式!

需要注意的是,上述两个^的含义是不同的。筛选行尾是r.的行:

学编程,怎么能不懂正则表达式!

Perl 自动化系统管理 Automating.System.Administration.with.Perl.2nd.Edition 第2版
Perl 自动化系统管理 Automating.System.Administration.with.Perl.2nd.Edition 第2版

perl 是类UNIX系统管理的一个利器,维护系统如果不会Perl,最少也应该弄熟SHELL,两者都能得心应手当然最好。 Perl是一种脚本语言。 最初的设计者为拉里·沃尔(Larry Wall),它于1987年12月18日发表。Perl借取了C、sed、awk、shell scripting 以及很多其他编程语言的特性。其中最重要的特性是他内部集成了正则表达式的功能,以及巨大的第三方代码库 CPAN。 Perl原名pearl,但是在这个语言官方发表前,拉里·沃

下载

因为正则表达式中“.”具有特殊意义,所以需要“\”来转义。为了节省屏幕空间,去除空白行和行首为#的注释行:

学编程,怎么能不懂正则表达式!

⑶任意字符.与重复字符*

与通配符不同,在正则表达式中.代表一个任意字符,而*代表重复前一个字符0到无穷多次。例如,我们想查找含有g??d的行:

学编程,怎么能不懂正则表达式!

筛选至少含有两个o的行:

学编程,怎么能不懂正则表达式!

利用重复字符可以表示任意字符“.*”,例如筛选g开头与g结尾的字符串,中间字符可有可无:

学编程,怎么能不懂正则表达式!

筛选含有任意数字的行:

学编程,怎么能不懂正则表达式!

⑷限定连续字符范围{}

在正则表达式中{}可以用来界定连续字符的范围,但是由于在shell中{}具有特殊意义(数组引用),因此需要“\”来进行转义。例如,筛选含有2个o的字符串:

学编程,怎么能不懂正则表达式!

查找g后面接2-6个o,然后再接一个g的字符串:

学编程,怎么能不懂正则表达式!

掌握正则表达式的使用后,我们就可以进一步学习sed、awk等文本处理工具了。

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

510

2023.06.20

正则表达式不包含
正则表达式不包含

正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。

250

2023.07.05

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

742

2023.07.05

java正则表达式匹配字符串
java正则表达式匹配字符串

在Java中,我们可以使用正则表达式来匹配字符串。本专题为大家带来java正则表达式匹配字符串的相关内容,帮助大家解决问题。

213

2023.08.11

正则表达式空格
正则表达式空格

正则表达式空格可以用“s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。本专题为大家提供正则表达式相关的文章、下载、课程内容,供大家免费下载体验。

351

2023.08.31

Python爬虫获取数据的方法
Python爬虫获取数据的方法

Python爬虫可以通过请求库发送HTTP请求、解析库解析HTML、正则表达式提取数据,或使用数据抓取框架来获取数据。更多关于Python爬虫相关知识。详情阅读本专题下面的文章。php中文网欢迎大家前来学习。

293

2023.11.13

正则表达式空格如何表示
正则表达式空格如何表示

正则表达式空格可以用“s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。想了解更多正则表达式空格怎么表示的内容,可以访问下面的文章。

234

2023.11.17

正则表达式中如何匹配数字
正则表达式中如何匹配数字

正则表达式中可以通过匹配单个数字、匹配多个数字、匹配固定长度的数字、匹配整数和小数、匹配负数和匹配科学计数法表示的数字的方法匹配数字。更多关于正则表达式的相关知识详情请看本专题下面的文章。php中文网欢迎大家前来学习。

528

2023.12.06

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
AngularJS教程
AngularJS教程

共24课时 | 2.9万人学习

【李炎恢】ThinkPHP8.x 后端框架课程
【李炎恢】ThinkPHP8.x 后端框架课程

共50课时 | 4.5万人学习

Swoft2.x速学之http api篇课程
Swoft2.x速学之http api篇课程

共16课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号